gal 2.1.0 copy "gal: ^2.1.0" to clipboard
gal: ^2.1.0 copied to clipboard

Gal is a Flutter plugin for saving image or video to gallary/photos. You can also easily handle permissions.

Gal πŸ–ΌοΈ #

Since pub points Maintainability CodeFactor Codacy Badge CI pub package

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

Please LIKEπŸ‘ and STAR⭐️ to support our volunteer efforts. #

Android iOS macOS Windows
Support SDK 21+ 11+ 11+ 10+
iOS Android
Example ios android

✨ Features #

  • Open gallery
  • Save video
  • Save image
  • Save to album
  • Save with metadata
  • Handle permission
  • Handle errors
  • Lots of docs and wiki

πŸš€ Get started #

Add dependency #

You can use the command to add gal as a dependency with the latest stable version:

$ flutter pub add gal

iOS #

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

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

You can copy from Info.plist in example.

Android #

Add the following keys to the 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 AndroidManifest.xml in example.

πŸ”΄ Warning: Android emulators with API < 29 require SD card setup. Real devices don't.

macOS #

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

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

You can copy from Info.plist in example.

πŸ”΄ Warning: Flutter has fatal crash issee for loading info.plist on macOS now.

Windows #

We recommend that you update Visual Studio to the latest version for using C++ 20.

βœ… 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
// Shot 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 Permission #

// Check Permission
await Gal.hasAccess();

// Request Permission
await Gal.requestAccess();

Handle Errors #

// Save Image with try-catch
try {
  await Gal.putImage($imagePath);
} on GalException catch (e) {
  log(e.type.message);
}

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

  String get message => switch (this) {
        accessDenied => 'You do not have permission to access the gallery app.',
        notEnoughSpace => 'Not enough space for storage.',
        notSupportedFormat => 'Unsupported file formats.',
        unexpected => 'An unexpected error has occurred.',
      };
}

πŸ“ Ducuments #

183
likes
0
pub points
97%
popularity

Publisher

verified publishermidoridesign.studio

Gal is a Flutter plugin for saving image or video to gallary/photos. You can also easily handle permissions.

Homepage
Repository (GitHub)
View/report issues

Topics

#gallery #video #image #photos #util

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on gal