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).floor();
int height = (image.height / 3).floor();
// 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;
}
2条答案
按热度按时间7gyucuyw1#
你可以使用这个软件包(https://pub.dev/packages/image)通过函数copyCrop从资源中裁剪图像。保存它们到列表中,然后像你的例子一样显示。
编辑:
我想你知道如何分割你的图像,并显示他们像你的例子,如果你知道如何裁剪你的图像,所以我只是告诉你如何改变从图像资产到图像包的图像裁剪。
字符串
记住将这个导入'package:image/image.dart'添加为imglib;
mf98qq942#
稍微修改了hoangquyy的答案,所以你可以只将资产路径传递给函数并获得一个图像列表:
字符串