Flutter 使用颤振图像包裁剪图像无效

Flutter 使用颤振图像包裁剪图像无效,flutter,dart,Flutter,Dart,我尝试使用for循环中的image包在颤振应用程序中裁剪图像 更多详细信息: 我有很多图片的列表。我试图找出第一幅图像的修剪数据,并将其应用于所有其他图像。为此,我遵循image包中的官方教程:(“加载图像目录,自动修剪第一幅图像,并将修剪应用于所有后续图像。”) **这是我的for循环: for (var i = 0; i < allPictures.length; i++) { var file = File(allPictures[i].path); print("

我尝试使用for循环中的
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)