Flutter 使用颤振图像包裁剪图像无效
我尝试使用for循环中的Flutter 使用颤振图像包裁剪图像无效,flutter,dart,Flutter,Dart,我尝试使用for循环中的image包在颤振应用程序中裁剪图像 更多详细信息: 我有很多图片的列表。我试图找出第一幅图像的修剪数据,并将其应用于所有其他图像。为此,我遵循image包中的官方教程:(“加载图像目录,自动修剪第一幅图像,并将修剪应用于所有后续图像。”) **这是我的for循环: for (var i = 0; i < allPictures.length; i++) { var file = File(allPictures[i].path); print("
image
包在颤振应用程序中裁剪图像
更多详细信息:
我有很多图片的列表。我试图找出第一幅图像的修剪数据,并将其应用于所有其他图像。为此,我遵循image
包中的官方教程:(“加载图像目录,自动修剪第一幅图像,并将修剪应用于所有后续图像。”)
**这是我的for
循环:
for (var i = 0; i < allPictures.length; i++) {
var file = File(allPictures[i].path);
print("Start Cropping");
var decodedImage =
image.decodeImage(File(file.path).readAsBytesSync());
print("Decoded Image: $decodedImage");
if (decodedImage == null) {
print("Continue");
continue;
}
if (trimRect == null) {
print("Is null");
trimRect =
image.findTrim(decodedImage, mode: image.TrimMode.transparent);
}
image.copyCrop(
decodedImage, trimRect[0], trimRect[1], trimRect[2], trimRect[3]);
print("Cropped!");
File(allPictures[i].path).writeAsBytesSync(
image.encodeNamedImage(decodedImage, allPictures[i].path));
}
我得到一个错误:flatter:RangeError(index):index超出范围:index应该小于899072:899072
for (var i = 0; i < allPictures.length; ++i)
for(变量i=0;i
如果您使用调试器单步执行,会发生什么情况?我得到一个错误flatter:RangeError(index):index超出范围:index应该小于899072:899072
我猜clip rect超出了一幅图像的边界。你的图片大小相同吗?不,完全不同,因为这些图片是用户上传的。。。而且它们可以有各种尺寸……那我就更有信心这就是问题所在。裁剪大小基于第一个图像,但如果第一个图像为1000x800,其计算的剪辑rect为rect。从LTWH(100100900900)
,则第二个图像仅为200x300?该剪辑矩形比整个第二幅图像大几倍。
for (var i = 0; i < allPictures.length; ++i)