Flutter Web 图像在移动设备上裁剪不起作用(RepaintBoundary 和包截图:^2.1.0)

问题描述 投票:0回答:1

我正在开发一个 flutter web 项目,我有一个页面可以选择和上传图像,用户可以放大或缩小以裁剪图像

问题是: 在桌面上的网络上裁剪图像工作正常,但在移动设备上的网络上裁剪图像不起作用

我将函数包装在用

try {}catch (e){} 
触发代码的按钮中,并添加了一个小吃栏以在移动设备上获取任何错误,但我什么也没得到 我认为它卡在了这个功能中,或者
RenderRepaintBoundary
在移动设备上的 flutter web 上不起作用 或者不兼容或者我不确定的东西

如果有人可以提供帮助或提供替代解决方案或解决方法,我将不胜感激

我使用了这个包来放大/缩小和裁剪图像

cropperx: ^1.1.1
但它不适用于移动网络,然后我尝试了
photo_view: ^0.14.0
放大/缩小,使用
screenshot: ^2.1.0
获取裁剪后的图像 但它也不适用于移动网络

然后我删除了

screenshot: ^2.1.0
并用
RepaintBoundary
包裹了我的PhotoView,并给了它一个
GlobalKey
并将其与功能一起使用

takescrshot() async {

  RenderRepaintBoundary boundary = scr.currentContext.findRenderObject();
   var image = await boundary.toImage();
   var byteData = await image.toByteData(format: ImageByteFormat.png);
   var pngBytes = byteData.buffer.asUint8List();
   print(pngBytes);

 }

我在桌面上得到了网页上的裁剪图像,但移动设备不起作用

flutter image crop flutter-web-browser
1个回答
0
投票

经过更多调试后我发现错误是

/Assertion failed: org-dartlang-sdk:///lib engine/engine/html/scene_builder.dart:94:16_ && matrix4 [0]== window.devicePixelRatio matrix4[5] == window.devicePixelRatio is not true

我修复了它运行构建

flutter build web --web-renderer canvaskit
© www.soinside.com 2019 - 2024. All rights reserved.