SachinGanesh / screenshot

Flutter Screenshot Library
https://pub.dev/packages/screenshot
MIT License
327 stars 137 forks source link

Taking Screenshot of only background on web #146

Open rohanjariwala03 opened 1 year ago

rohanjariwala03 commented 1 year ago

Issue

Tried flutter run -d web-server --web-port 3344 --release --web-renderer canvaskit --dart-define=BROWSER_IMAGE_DECODING_ENABLED=false

Code

ScreenshotController screenshotController = ScreenshotController();

Widget screenshotWidget() {
   return Screenshot(
                    controller: screenshotController,
                    child: RTCVideoView(
                      ref.read(widget.rtc),
                      objectFit: RTCVideoViewObjectFit.RTCVideoViewObjectFitContain,
                      mirror: true,
                      filterQuality: FilterQuality.high,
                    ),
                  );
}

Future<void> captureImage() async {
   Uint8List? tempImage = await screenshotController.capture().onError((error, stackTrace) {
                                    debugPrint('error $error');
                                    return null;
                                  });
}

NOTE: Working on MacOs, Windows, iOS and Android

vborbely commented 2 months ago

I found that on Web, you have to call Uint8List? tempImage = await screenshotController.capture() with a Duration = 0:

Uint8List? tempImage = await screenshotController.capture( delay: const Duration(milliseconds: 0) );