#image #flutter #crop
Вопрос:
Я хочу создать приложение, которое может обрезать изображение с определенным соотношением сторон (соотношение устройств). Но я не хочу, чтобы какой-либо пользовательский интерфейс отображал параметры обрезки.
Хорошо, вот пример,
Если пользователь нажимает на изображение из списка изображений в приложении, выбранное изображение автоматически (фоновый процесс) обрезается (соотношение устройств) и сохраняется на устройстве без отображения пользовательского интерфейса, связанного с обрезкой. Как я могу это сделать! Любая функция в dart, с помощью которой можно обрезать изображение, ничего не показывая.
Комментарии:
1. вы нашли какое-либо решение, связанное с этим?
Ответ №1:
Вы можете использовать copyCrop() с изображением:
Копирование изображения (изображение src, int x, int y, int w, int h);
import 'dart:io';
import 'package:image/image.dart';
void main(List<String> argv) {
String path = argv[0];
Directory dir = Directory(path);
List files = dir.listSync();
List<int> trimRect;
for (var f in files) {
if (f is! File) {
continue;
}
List<int> bytes = f.readBytesSync();
Image image = decodeImage(bytes);
if (image == null) {
continue;
}
if (trimRect == null) {
trimRect = findTrim(image, mode: TrimMode.transparent);
}
Image trimmed = copyCrop(image, trimRect[0], trimRect[1],
trimRect[2], trimRect[3]);
String name = f.path.split(RegExp(r'(/|\)')).last;
File('$path/trimmed-$name').writeBytesSync(encodeNamedImage(image, f.path));
}
}