我正在开发一个 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);
}
我在桌面上得到了网页上的裁剪图像,但移动设备不起作用
经过更多调试后我发现错误是
/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