Обрезайте и сохраняйте изображение в Flutter без пользовательского интерфейса

0

Вопрос

Я хочу создать приложение, которое может обрезать изображение в определенном соотношении сторон(соотношение устройств). Но я не хочу, чтобы какой-либо пользовательский интерфейс отображал параметры обрезки.

Хорошо, вот пример,

Если пользователь нажимает на изображение из списка изображений в приложении, выбранное изображение автоматически (фоновый процесс) обрезается (соотношение устройств) и сохраняется на устройстве без отображения пользовательского интерфейса, связанного с обрезкой. Как я могу это сделать! Любая функция в dart, с помощью которой можно обрезать изображение, ничего не показывая.

enter image description here

crop flutter image
2021-10-26 13:23:42
1

Лучший ответ

0

Вы можете использовать функцию 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));
  }
}
2021-10-27 06:10:19

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................