Languages

Screenshot Plus

Screenshot Plus is an efficient Flutter plugin for capturing the current state of any widget within a Flutter application. Whether it's capturing visible widgets on the current screen, generating images from widgets not currently displayed, or even capturing long lists, Screenshot Plus handles it with ease.

Features

  • Capture Current Screen Widgets: Quickly capture any widget on the current screen and save it as an image.
  • Generate Images from Any Widget: Generate images from any widget, even if it's not currently displayed on the screen.
  • Capture Long Lists: Specially designed for capturing long lists, ensuring the entire list is captured, no matter the length.

Installation

Add the following dependency to your pubspec.yaml file:

dependencies:
  flutter_screenshot_plus: ^latest_version

Then run flutter packages get to install the plugin.

Usage

ScreenShot(
    controller: controller,
    child: your_child,
);

// Create a controller
ScreenShotController controller = ScreenShotController();

Capture Current Screen Widgets

Uint8List? image = await controller.capture(
  pixelRatio: 1.5, // Optional, set the pixel ratio
  delay: Duration(milliseconds: 20), // Optional, delay before capture
);

Generate Images from Any Widget

Uint8List image = await controller.captureFromWidget(
  MyWidget(), // The widget to capture
  delay: Duration(seconds: 1), // Optional, delay before generating the image
  pixelRatio: 1.5, // Optional, set the pixel ratio
  context: context, // Optional, current BuildContext
  targetSize: Size(1080, 1920), // Optional, target size
);

Capture Long Lists

Uint8List? longImage = await controller.captureLongWidget(
  scrollController: myScrollController, // Required, the ScrollController for the long list
  extraImage: [ImageParam(...)], // Optional, extra images like headers, footers, or watermarks
  maxHeight: 10000, // Optional, maximum height limit
  pixelRatio: 1.5, // Optional, set the pixel ratio
  backgroundColor: Colors.white, // Optional, background color, defaults to white
  format: ShotFormat.png, // Optional, image format, supports png or jpeg
  quality: 100, // Optional, image quality, 0~100
);

Parameters

  • pixelRatio: Sets the pixel ratio for the output image, defaults to the device's pixel ratio.
  • delay: The delay before capturing, useful for waiting for animations to complete.
  • backgroundColor: Sets a background color for the captured widget, defaults to white.
  • format: Sets the output image format, supports PNG and JPEG.
  • quality: Sets the quality for JPEG images, range is 0 to 100. This is not applicable for PNG format.

Contributions

If you have any suggestions or issues, please submit them through GitHub Issues.

License

Screenshot Plus is released under the MIT license. See the LICENSE file for more details.

Acknowledgements

screenshot