image_picker_totalxsoftware 1.0.2 copy "image_picker_totalxsoftware: ^1.0.2" to clipboard
image_picker_totalxsoftware: ^1.0.2 copied to clipboard

A Flutter package for picking, cropping, and uploading images to Firebase Storage with advanced features like multiple image selection and custom aspect ratio presets.

Image Picker TotalXSoftware #

Launch Totalx

Developed by Totalx Software


Introduction #

ImagePickerTotalxsoftware is a Flutter package for handling advanced image picking, cropping, compressing, and uploading functionalities with Firebase integration. This package simplifies the process of selecting, cropping, and uploading images to Firebase Storage.


Features #

  • Single Image Selection: Choose a single image from the camera or gallery.
  • Multiple Image Selection: Select multiple images at once.
  • Image Cropping: Crop selected images with custom aspect ratios.
  • Firebase Upload: Upload images directly to Firebase Storage.
  • Image Compression: Compress images before uploading.
  • Image Deletion: Delete single or multiple images from Firebase Storage.

Installation #

Add the package to your pubspec.yaml:

dependencies:
  image_picker_totalxsoftware: ^1.0.0

Usage #

Import the Package #

import 'package:image_picker_totalxsoftware/image_picker_totalxsoftware.dart';

Permissions #

Android #

Add the following permissions to your AndroidManifest.xml:


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.CAMERA" />

iOS #

Add the following keys to your Info.plist file:

<key>NSPhotoLibraryUsageDescription</key>
<string>We need access to your photo library to pick images.</string>
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to take photos.</string>

<!-- <key>NSPhotoLibraryAddUsageDescription</key>
<string>We need permission to save edited images to your photo library.</string> -->

Examples #

1. Single Image Picker

// file path

String? imagePath = await ImagePickerTotalxsoftware.pickImage(
  source: ImageSource.gallery,
  onError: (error) {
    print("Error picking image: $error");
  },
);


2. Single Image Picker And Crop

// file path

String? path = await ImagePickerTotalxsoftware.pickAndCropImage(
    context,
    aspectRatioPresets: [
        CropAspectRatioPreset.ratio7x5,
        CropAspectRatioPreset.square,
    ],
    onError: (e) {
        log(e);
    },
);


3. Multiple Image Picker

// List of file paths

final paths = await ImagePickerTotalxsoftware.pickMultipleImage(
    context,
    maxImageCount: 5,
        // minImageCount: 2,
    onError: (e) {
        log(e);
    },
);



4. Multiple Image Picker with Cropping

// List of file paths

final paths = await ImagePickerTotalxsoftware.pickMultipleImageAndCrop(
    context,
    maxImageCount: 5,
        // minImageCount: 2,
    aspectRatioPresets: [
        CropAspectRatioPreset.ratio7x5,
        CropAspectRatioPreset.ratio4x3,
    ],
    cropStyle: CropStyle.rectangle,
    onError: (e) {
        log(e);
    },
);


5. Pick and Upload Single Image to Firebase Storage

// String url

String? uploadedUrl = await ImagePickerTotalxsoftware.pickAndUploadToFirebaseStorage(
  context,
  source: ImageSource.gallery,
  storagePath: 'usersImages',
  onError: (error) {
    print("Error uploading image: $error");
  },
);


6. Pick, Crop, and Upload Image to Firebase Storage

// String url

String? uploadedUrl = await ImagePickerTotalxsoftware.pickCropAndUploadToFirebaseStorage(
  context,
  source: ImageSource.gallery,
  storagePath: 'usersImages',
  cropStyle: CropStyle.circle,
  onError: (error) {
    print("Error uploading cropped image: $error");
  },
);


7. Upload an Image to Firebase Storage

// String url
String? url =await ImagePickerTotalxsoftware.uploadToFirebaseStorage(
    filepath: 'path/to/file.png',
    // compressSize: const Size(720, 1280),
    storagePath: 'images',
    onError: (e) {
     log(e);
    },
);


8. Upload Multiple Images to Firebase Storage

// List of urls

List<String> uploadedUrls = await ImagePickerTotalxsoftware.uploadMultipleToFirebaseStorage(
  filepathList: ['path/to/image1.jpeg', 'path/to/image2.jpeg'],
  storagePath: 'images',
  onError: (error) {
    print("Error uploading multiple images: $error");
  },
);


9. Delete a Single Image from Firebase Storage


try {
    
    await ImagePickerTotalxsoftware.deleteImageFromFirebaseByUrl(
    'https://firebasestorage.googleapis.com/v0/b/your-app-id/o/uploads/image.jpeg',
    );
                    
} catch (e) {
  log('error $e')
}


10. Delete Multiple Images from Firebase Storage


try {

await ImagePickerTotalxsoftware.deleteMultipleImagesFromFirebaseByUrls([
  'https://firebasestorage.googleapis.com/v0/b/your-app-id/o/uploads/image1.jpeg',
  'https://firebasestorage.googleapis.com/v0/b/your-app-id/o/uploads/image2.jpeg',
]);
                    
} catch (e) {
  log('error $e')
}


Explore more about TotalX at www.totalx.in - Your trusted software development company! #

🌐 Connect with Totalx Software #

Join the vibrant Flutter Firebase Kerala community for updates, discussions, and support:

Telegram

Flutter Firebase Kerala Totax

2
likes
160
points
218
downloads
screenshot

Publisher

unverified uploader

Weekly Downloads

A Flutter package for picking, cropping, and uploading images to Firebase Storage with advanced features like multiple image selection and custom aspect ratio presets.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

firebase_storage, flutter, flutter_image_compress, hl_image_picker, image_cropper, image_picker, plugin_platform_interface

More

Packages that depend on image_picker_totalxsoftware