Flutterで画像を回転加工する方法

自作アプリ「弱点克服スクラップブック」で、間違った問題を写真で撮った際、稀に横向きになることがあって撮り直しが面倒だったので、画像を回転加工する方法を調べました。

画像を回転表示ではなく、画像を回転加工です。

まずは結果から。

色々やり方はありそうですが今回は「image」パッケージを使いました。

image | Dart Package
Dart Image Library provides server and web apps the ability to load, manipulate, and save images with various image file formats.

まずはパッケージを追加。

// pubspec.yaml
dependencies:
  image: any

// コンソール
>flutter pub get

使い方はこんな感じ。

ImageクラスはFlutter標準のものと重複するのでネームスペース「imgLib」をつけてアクセスします。
90度回転加工した画像を受け取って、あとは好きな型のデータに適宜変換します。
今回は Uint8Listで欲しかったのでそうなっています。

import 'package:image/image.dart' as imgLib;

// Uint8List _imageData
imgLib.Image image = imgLib.decodeImage(_imageData);

// 90度回転
imgLib.Image rotatedImage = imgLib.copyRotate(image, 90);

// imageLib.Image > jpg(List<int>) > Uint8List
_imageData = Uint8List.fromList(imgLib.encodeJpg(rotatedImage));

間違いやもっと良い方法があれば教えてください。

最後に宣伝です。
本記事で紹介した機能を追加予定の「弱点克服スクラップブック」アプリ、まだまだ機能が少なくて荒削りですが試しにインストールしてくれると嬉しいです。

コメント

タイトルとURLをコピーしました