davinci

Creator: coderz1093

Last updated:

Add to Cart

Description:

davinci

Davinci #


A package to convert any widget to an image which can be saved locally or can be shared to other apps and chats.
📹 Preview #

ℹ️ Usage #
⚠️ From version 2.1.0, passing context in required now in the click and offStage methods, this is due to some deprecated methods in Flutter version 3.10
Prerequisites

on iOS

Add the following keys to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

NSPhotoLibraryUsageDescription - describe why your app needs permission for the photo library. This is called Privacy - Photo Library Usage Description in the visual editor.


on Android


android.permission.WRITE_EXTERNAL_STORAGE - Permission for usage of external storage

Imports
import 'package:davinci/core/davinci_capture.dart';
import 'package:davinci/davinci.dart';
copied to clipboard
Pseudo code



If the widget is in the widget tree Use click method
If the widget is not in the widget tree Use offStage method










Dynaimc Branding footer
Dynamic branding footer can be added to widgets that can be added to off-stage widgets.
ℹ️ This branding footer (brandTag parameter) is currrently available only on offStage method. For click method, it'll be added soon.
Branding footer can be added like this.
await DavinciCapture.offStage(
context: context,
const PreviewWidget(),

/// Footer can be dynamically added for offStage Widgets
brandTag: BrandTagConfiguration(
padding: const EdgeInsets.only(left: 20, right: 20),
decoration: const BoxDecoration(color: Colors.black),
leading: const Text(
"Footer dyamically added, Inspired from Reddit",
style: TextStyle(fontSize: 14),
),
trailing: const Icon(
LineIcons.redditAlien,
color: Color(0xffFF4500),
),
),
);
copied to clipboard


By default the generated image name will be "davinci". But if you wish to change it, you can pass the image name in DavinciCapture.click method.
await DavinciCapture.click(context: context, imageKey, fileName: "Hello");
copied to clipboard

When the image is captured, you can either open the image preview or get the image in Uint8List.
await DavinciCapture.click(context: context, imageKey, fileName: "Hello", openFilePreview = false, returnImageUint8List = true);
copied to clipboard

If the captured image is pixelated, calculate the pixel ratio dynamically based on the device and pass it to the DavinciCapture.click method.
double pixelRatio = MediaQuery.of(context).devicePixelRatio;

await DavinciCapture.click(context: context, imageKey, fileName: "Hello", pixelRatio: pixelRatio);
copied to clipboard

To save the image directly to the device, set saveToDevice flag to true. You can also specify the album name or you can leave it undefined.
await DavinciCapture.click(context: context, imageKey, fileName: "Hello", saveToDevice = true, album: "Davinci", openFilePreview = false);
copied to clipboard

ℹ️ All the parameters in the click method is present in offStage method too.
🛎️ Note : #

If you wish to save the generated images locally, do remember to add necessary permissions in info.plist and AndroidManifest.xml.

Contributors #

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.