如何在Flutter中分割/分割图像

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

如何将图像分成相等大小的部分?只需从资产中获取图像并将其以网格状方式分成相等的部分,以便每个图像部分都可以用作单独的图像。

类似于图片here

image flutter flutter-layout
1个回答
0
投票

您可以使用此程序包(https://pub.dev/packages/image)通过copyCrop函数从资产中裁剪图像。将它们保存到列表,然后像您的示例一样显示。

编辑:

[我认为如果您知道如何裁剪图像,那么我知道如何拆分图像并像示例一样显示它们,因此,我只向您展示如何从资产图像​​切换为图像包图像以进行裁剪。

List<Image> splitImage(List<int> input) {
  // convert image to image from image package
  imglib.Image image = imglib.decodeImage(input);

  int x = 0, y = 0;
  int width = (image.width / 3).round();
  int height = (image.height / 3).round();

  // split image to parts
  List<imglib.Image> parts = List<imglib.Image>();
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      parts.add(imglib.copyCrop(image, x, y, width, height));
      x += width;
    }
    x = 0;
    y += height;
  }

  // convert image from image package to Image Widget to display
  List<Image> output = List<Image>();
  for (var img in parts) {
    output.add(Image.memory(imglib.encodeJpg(img)));
  }

  return output;
}

记住要将此导入'package:image / image.dart'添加为imglib;

© www.soinside.com 2019 - 2024. All rights reserved.