nekokakを知る
slackはelectron-jpはROMってるが、Big Sky :: 簡単に回転画像が生成出来るコマンド「nekokak」をgolangで書いた。の説明にあるユースケースは見たことが無い。
まぁ、それはさておき、ちょうど、mruby-mrmagickでGIFアニメーションの対応をやろうとしていた矢先だったので、GIFアニメーションの出力がmruby-magickで可能になったら、mrubyでやってみようと心に決めた。
いろいろはまった
- iPhoneで撮った縦長の写真などだとauto_orientしないと、上手く行かない
- rotate直後のcropでは、処理基準が画像の中心になっている
- scaleで拡大すると、cropの処理基準が画像の左上になってしまう。
- png画像だとNG
解決まで長い道のりではあったが結局は
rotateやcrop後にImage#pageメソッドで"0x0+0+0"のGeometryを設定すれば直観的なGeometry(座標)指定で以降も処理出来た。
Image#page("0x0+0+0")
convertコマンドでも同様の処理をする場合、+repageオプションを付けるのが定石の模様。
use with Gist Search
まとめ
mruby-mrmagickで以下が可能になった。
- GIFアニメーションの作成
- rotateメソッドによる画像の回転
- cropメソッドによる画像の一部切り出し
参考資料
- [SOLVED] Is "+repage" and "-repage 0x0" exactly the same? - ImageMagick
- bulkitems: imagemagickでpngを切り抜いてgifを作る
関連記事