non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

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オプションを付けるのが定石の模様。

f:id:kjw_junichi:20180920215624g:plain

use with Gist Search

まとめ

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

  • GIFアニメーションの作成
  • rotateメソッドによる画像の回転
  • cropメソッドによる画像の一部切り出し

参考資料

関連記事

 

6年前の記事

1年後の記事