davinci 2.0.3
davinci: ^2.0.3 copied to clipboard
A package to convert any widget to an image which can be saved locally or can be shared to other apps and chats.
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 #
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';
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 |
---|---|
![]() |
![]() |
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(imageKey, fileName: "Hello");
When the image is captured, you can either open the image preview or get the image in Uint8List.
await DavinciCapture.click(imageKey, fileName: "Hello", openFilePreview = false, returnImageUint8List = true);
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(imageKey, fileName: "Hello", pixelRatio: pixelRatio);
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(imageKey, fileName: "Hello", saveToDevice = true, album: "Davinci", openFilePreview = false);
ℹ️ All the parameters in the click
method is present in offStage
method too.
🛎️ Note : #
- Cannot capture Platformview due to issue https://github.com/flutter/flutter/issues/25306
- If you wish to save the generated images locally, do remember to add necessary permissions in
info.plist
andAndroidManifest.xml
.