Как разбить изображение на части равного размера? Просто возьмите изображение из ресурса и разделите его на равные части в виде сетки, чтобы каждую часть изображения можно было использовать как отдельное изображение.

Что-то похожее на картинку здесь

6
Doc 13 Окт 2019 в 14:35

1 ответ

Лучший ответ

Вы можете использовать этот пакет (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;
}

Не забудьте добавить этот import 'package: image / image.dart' как imglib;

5
hoangquyy 14 Окт 2019 в 03:55