listview_screenshot 1.0.1 copy "listview_screenshot: ^1.0.1" to clipboard
listview_screenshot: ^1.0.1 copied to clipboard

Supports long screenshots, suitable for ListView and other scrollable widgets,

listview_screenshot #

flutter针对ListView等滚动视图实现长截图,

img CI Using melos Main version

Getting started #

dart pub add listview_screenshot

Usage #

列表截图

核心是 WidgetShotRenderRepaintBoundary.screenshot

  final GlobalKey _shotKey = GlobalKey();
  final ScrollController _scrollController = ScrollController();
        child: WidgetShot(
          key: _shotKey,
          child: ListView.builder(
            controller: _scrollController,
            // ...
          ),
        ),
  void onScreenshot() async {
    var context = _shotKey.currentContext!;
    WidgetShotRenderRepaintBoundary repaintBoundary =
        context.findRenderObject() as WidgetShotRenderRepaintBoundary;
    Uint8List? pngBytes = await repaintBoundary.screenshotPng( // 或者调用screenshot得到image库的Image对象,
      scrollController: _scrollController,
      backgroundColor: Colors.white,
      workerName: 'imageMergeTransform', // web异步线程合并要生成对应js文件,否则不传,
    );
    if (pngBytes == null) {
      // ... error,
      return;
    }
    // ... save pngBytes to png file,
  }

web异步线程合并支持,
imageMergeTransform.dart 下载到flutter项目web目录下,使用如下代码编译出js文件,
生成的js文件名填写到screenshot方法参数workerName,

dart compile js imageMergeTransform.dart -o imageMergeTransform.js -O4

TODO #

  • mac HiDPI截不到高清图,
  • web端一下一下的卡顿,
  • 合并过程异步,
  • 发布到pub.dev,
  • 全平台支持,
  • 提供未编码的图像或png/jpg已编码图像,
  • 整页翻页超长截图拼接,
0
likes
0
pub points
55%
popularity

Publisher

unverified uploader

Supports long screenshots, suitable for ListView and other scrollable widgets,

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, image, isolate_transformer

More

Packages that depend on listview_screenshot