前回更新した時 から主に変わったことを書いていきます。
設定項目
今設定できるのはこの3つです。
Gnawrnip.configure do |c| c.frame_interval_ms = 1000 c.make_animation = true c.max_frame_size = 1024 # pixel end
前回から2つ減って1つ増えました。
追記
frame_interval
を frame_interval_ms
に変更しました。値の意味は変更無しです。
[Delete] photographer_driver
スクリーンショットのスライドショーを実現するために、以前は 「JavaScript」or「RMagick(ImageMagick) による動画GIFの生成」を行っていました。動き的には問題無かったのですが、以下の不満点が出てきました。
- スライドが増えてくると一々最後(つまりエラーが出る瞬間)まで見続けてないといけない。
make_animation = false
とするとエラーが出た瞬間の絵は見れるが、やはり過程を見たい時もある
- そもそも imagemagick を使う機会が俺に無かった
- もう js でいいじゃんってね……
なので今回(v0.2.0)からは JavaScript Only で行うことにしました。ImageMagick お疲れ様でした。 ちなみに使わせていただいたスライドショーライブラリは jQuery Cycle2 です。
イメージはこんな動きをします。
これで好きなフレームを好きなタイミングで好きなだけ見れるようになりました。デバッグ作業が捗るね!!
[Delete] frame_size
[Add] max_frame_size
そもそも ImageMagick を使えるようにしていた理由は「画像載せまくってファイルサイズ増えるから、せめて動画GIFとかリサイズ可能にしてファイルサイズを少しでも減らせるように」みたいな用途でした。 で、今回 JavaScript で進めるってことで、この課題が放置されるのもちょっとなーと思ったので、とりあえず画像のリサイズ用に、新たに OilyPNG を使うようにしました。
数値の意味は簡単で、もしスクリーンショットのオリジナルのサイズが 640x480
で、 max_frame_size = 600
だったら、変換後は 600x450
になるってことです。480x640
だったら 450x600
。
width と height 同時に設定しなくなった理由は、俺が使わないからです。幅or高さの最大値として指定して そいつに集束してもらえればそれでよかったので。
ちなみに、最初は Pure Ruby の ChunkyPNG を使ってたんですが、さすがに遅すぎたので。
参考までにどんだけ遅かったか
変換無し | ChunkyPNG | OilyPNG | |
---|---|---|---|
6枚のスクリーンショット | 24秒 | 2分53秒 | 27秒 |
そんなわけで
便利です