Обработка изображений в Dart

Я создаю приложение, которое распознает элементы изображения. Теперь у меня есть изображение в классе File, и я хочу повернуть изображение на несколько градусов и снова получить изображение в классе File. Есть ли решение, как это решить?

PS Я не хочу отображать это изображение. Я должен передать изображение как объект File какому-либо методу.

1 ответ

Решение

Чтобы повернуть фактический файл в памяти, используйте библиотеку изображений и функцию copyRotate.

Image copyRotate(Image src, num angle, {
   Interpolation interpolation = Interpolation.nearest
  }
);
//Returns a copy of the [src] image, rotated by [angle] degrees.

Пример:

import 'dart:io';
import 'package:image/image.dart';
void main() {
  // Read an image from file (webp in this case).
  // decodeImage will identify the format of the image and use the appropriate
  // decoder.
  Image image = decodeImage(File('test.webp').readAsBytesSync());

  Image thumbnail = copyRotate(image, 120);

  // Save the thumbnail as a PNG.
  File('thumbnail.png').writeAsBytesSync(encodePng(thumbnail));
}

источник

Чтобы отобразить повернутую версию сохраненного изображения, вы можете использовать RotationTransition с AlwaysStoppedAnimation нравиться-

new RotatedBox(
  quarterTurns: 1,
  child: new Text("Lorem ipsum")
)

или Transform.rotate() виджет нравится-

  Transform.rotate(angle: - math.pi / 4, child: Text("Text"),);

для вашего варианта использования -

  Transform.rotate(angle: degrees*3.14/180, child: Image.asset("file_path"),);
Другие вопросы по тегам