Обработка изображений в 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"),);