Kategorien, Pakete und Repositories suchen

Cover von gal
Paketdetailsv2.3.3

gal

Flutter-Plugin zum Speichern von Bildern/Videos in der Fotogalerie mit Berechtigungsverwaltung

AndroidiOSmacOSWindows
30-Tage-Downloads
707.000
Likes
595
Pub-Punkte
160

Paket installieren

flutter pub add gal

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das gal-Paket ist ein Flutter-Plugin, das das Speichern von Bildern und Videos in der Foto-Galerie des Geräts mit integrierter Berechtigungsverwaltung ermöglicht. Es unterstützt Android, iOS, macOS und Windows und ist daher ideal für Apps, die Funktionen zum Exportieren von Medien benötigen. Das Plugin vereinfacht den Zugriff auf die Galerie durch automatische Verwaltung von Berechtigungen und reduziert Boilerplate-Code. Es lässt sich nahtlos in multimediale Workflows integrieren, insbesondere in Apps, die Bild- oder Videokapazität, -bearbeitung oder -freigabe beinhalten.

Anwendungsfälle

  • Gespeicherte Bilder/Videos in der Galerie speichern
  • Automatisierung des Medienexports nach der Bearbeitung
  • Galeriezugriff in plattformübergreifenden Anwendungen integrieren
  • Berechtigungsanfragen für Medien-Speicher verarbeiten
  • Benutzerfreundliches Medien-Sharing aktivieren

Hauptmerkmale

  • Automatische Berechtigungsverwaltung
  • Plattformübergreifende Unterstützung (Android, iOS, macOS, Windows)
  • Einfache API zum Speichern von Medien
  • Eingebaute Fehlerverwaltung
  • Leicht und einfach zu integrieren

Geeignet für

  • Flutter-Anwendungen mit Medienaufnahme-Funktionen
  • Bild- oder Videobearbeitungstools
  • Apps, die Galeriezugriff erfordern
  • Entwickler, die eine minimale Einrichtung für die Medienspeicherung suchen
  • Plattformübergreifende Multimedia-Anwendungen

Hinweise

  • Erfordert entsprechende Berechtigungen in plattformspezifischen Konfigurationsdateien
  • Möglicherweise sind zusätzliche Maßnahmen für bestimmte OS-Verhaltensweisen erforderlich
  • Beschränkt auf grundlegende Speicheroperationen ohne erweiterte Metadatensteuerung
  • Abhängig von externem Repository für Updates
  • Nicht für die Medienauswahl oder -navigation ausgelegt

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Logo

Gal

Dart3 plugin for saving image or video to photos gallery ios photos google photos microsoft photos

pub.dev »

Since pub points CodeFactor Codacy Badge CI pub package

📢 Support Us

Please support our volunteer efforts by giving us a LIKE👍 and STAR⭐️.

🧠 DeepWiki Documentation

DeepWiki

📱 Supported Platforms

Android iOS macOS Windows Linux
Support SDK 21+ 11+ 11+ 10+ See: gal_linux

Support means that all functions have been tested manually or automatically whenever possible.

📸 Demo

iOS Android
Example ios android

✨ Features

  • Open gallery
  • Save video
  • Save image
  • Save to album
  • Save with metadata
  • Handle permission
  • Handle errors
  • Comprehensive documentation and wiki

🚀 Getting Started

Add Dependency

Add the latest stable version of gal to your dependencies:

flutter pub add gal
iOS Setup

Add the following keys to ios/Runner/Info.plist:

  • <key>NSPhotoLibraryAddUsageDescription</key> Required
  • <key>NSPhotoLibraryUsageDescription</key> Required for iOS < 14 or saving to album

You can copy from example's Info.plist.

Android Setup

Add the following keys to android/app/src/main/AndroidManifest.xml:

  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" /> Required for API <= 29
  • android:requestLegacyExternalStorage="true" Required for saving to album in API 29

You can copy from example's AndroidManifest.xml.

[!WARNING] Android emulators with API < 29 require SD card setup. Real devices don't.

macOS Setup

Add the following keys to macos/Runner/Info.plist:

  • <key>NSPhotoLibraryAddUsageDescription</key> Required
  • <key>NSPhotoLibraryUsageDescription</key> Required for saving to album

You can copy from example's Info.plist.

[!WARNING] Flutter currently has a fatal problem for loading info.plist, which may cause permission denials or app crashes in some code editors.

Windows Setup

Update Visual Studio to the latest version for using C++ 20.

[!TIP] If you can't compile, try downloading the latest Windows SDK:

  1. Open Visual Studio Installer
  2. Select Modify
  3. Select Windows SDK
Linux Setup

Linux is not officially supported, but can be added through a non-endorsed federated plugin. See: gal_linux

💻 Usage

Save from Local
// Save Image (Supports two ways)
await Gal.putImage('$filePath');
await Gal.putImageBytes('$uint8List');

// Save Video
await Gal.putVideo('$filePath');

// Save to Album
await Gal.putImage('$filePath', album: '$album')
...
Download from Internet
flutter pub add dio
// Download Image
final imagePath = '${Directory.systemTemp.path}/image.jpg';
await Dio().download('$url',imagePath);
await Gal.putImage(imagePath);

// Download Video
final videoPath = '${Directory.systemTemp.path}/video.mp4';
await Dio().download('$url',videoPath);
await Gal.putVideo(videoPath);
Save from Camera
flutter pub add image_picker
// Capture and Save
final image = await ImagePicker.pickImage(source: ImageSource.camera);
await Gal.putImage(image.path);
flutter pub add camera
// Record and Save
...
final video = await controller.stopVideoRecording();
await Gal.putVideo(video.path);
Handle Permissions
// Check Access Permission
final hasAccess = await Gal.hasAccess();

// Request Access Permission
await Gal.requestAccess();

// ... for saving to album
final hasAccess = await Gal.hasAccess(toAlbum: true);
await Gal.requestAccess(toAlbum: true);
Handle Errors
// Save Image with try-catch
try {
  await Gal.putImage('$filePath');
} on GalException catch (e) {
  log(e.type.message);
}

// Exception Type
enum GalExceptionType {
  accessDenied,
  notEnoughSpace,
  notSupportedFormat,
  unexpected;

  String get message => switch (this) {
        accessDenied => 'Permission to access the gallery is denied.',
        notEnoughSpace => 'Not enough space for storage.',
        notSupportedFormat => 'Unsupported file format.',
        unexpected => 'An unexpected error has occurred.',
      };
}

📚 Documentation

If you write an article about Gal, let us know in the discussion and we'll post the URL in the wiki or readme 🤝

💚 Trusted by Major Projects

Although Gal has only been released for a short time, it's already trusted by major projects.

and more...

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden