non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

mrubyで簡単に回転画像が生成出来るコマンドを作ろうとしている

おはようございます。ロケットブームだった長男がペーパークラフトのスポーツカー作りに興味が移ってきたようです。kjunichiです。

nekokakを知る

slackはelectron-jpはROMってるが、Big Sky :: 簡単に回転画像が生成出来るコマンド「nekokak」をgolangで書いた。の説明にあるユースケースは見たことが無い。

まぁ、それはさておき、ちょうど、mruby-mrmagickGIFアニメーションの対応をやろうとしていた矢先だったので、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オプションを付けるのが定石の模様。

Animate use with Gist Search

まとめ

mruby-mrmagickで以下が可能になった。

参考資料