モテる Ruby!Ruby で画像編集のあの手この手 (舘野 祐一 id:secondlife)
- スピーカー
- 舘野 祐一(secondlife) - 株式会社はてな
- プロフィール
- Perl の会社で Ruby を使っているエンジニア。好きなエディタは vim。最近好きなアイドルは Perfume。
- 講演時間
- 15:50〜16:05
- 講演者による資料
- http://d.hatena.ne.jp/secondlife/20070612/1181618706
自己紹介
はてなでブログを書いているエンジニア。
- Rubyがすき
- vimがすき
- アイドr
Rubyはモテ?
Rubyがいくら使えてもいっこうにモテる気がしない。 マーティンファウラー「Rubyコミュニティには女性はいない」
エンジニアのまわりで女性が多いのはデザイナー! ならRubyで画像編集をしよう。
画像編集ライブラリの紹介
Ruby/GD GD2
Ruby/GD:拡張ライブラリ + GD2: DLを使いlibgdを読んでPureRubyで叩いている、 OOっぽいインターフェース。
シンプルな画像描画に向いている。
libgdが入っているデストリが多い。
PerlやPHPと似たAPIで入門しやすい。
複雑なことをしようとすると大変。ベクター画像が使えない、 アンチエイリアスが美しくない、…。
rsstimesなどで使われている。
PureImage
PureRubyの画像ライブラリ。gdと同等の操作ができる。
拡張ライブラリがいらないのですぐに試せる。
ファイル入出力がpngのみ。フォントはビットマップのみ。TrueTypeでは読めない。
ImgaeScience
画像のリサイズのみに特化したライブラリ。
リサイズのみにRMagick使うなら、Get Science!
RubyInlineでFreeImageのAPIをたたいている。
rcairo
須藤さんのステキな説明を!
RMagick
ImageMagickのライブラリのRubyBinding。
画像処理に一通りの機能がある。
APIで結構なんでもできてる感。ドキュメントがしっかり書かれていて、サンプルも豊富。ImageMagickのテクニックがwwwに載っている。 最近の画像ライブラリでよく使われているのでソースを読めば使いかたがわかる。
APIが多すぎるのが欠点。ドキュメントも羅列的で探すのが大変。ディストリビューションに無い場合は依存ライブラリを入れるのが大変。メモリリークや微妙にバギーなのも問題。ベクターでの出力はできない。
http://rails2u.com/htmlhelp にWindows用のhelpがある。
はてなセリフはRMagickでできている。ほかにもいろいろ。
主なクラス
Image
多くのAPI: 282個のインスタンスメソッド。
必須API
- to_blob バイナリに
- from_blob バイナリからオブジェクトに
- resize/resize_to_fit 拡大縮小
- composite 重ねる
- rows/columns 大きさ
様々なエフェクトをメソッドひとつでかけられる
はまりどころ
- Image.readでarrayが返る
- 特定フォーマットで保存するときは引数に指定する
- 文字レンダリングの時は%にエスケープを
- Draw#text/anotateのエスケープの必要性がバージョンによって違う
ImageList
レイヤーのような感じ。GIFアニメにするのに便利。
エフェクトのかかりかたを替えながら作った画像をアニメにする
- Flashの代替
- Ajaxのloading画像
Draw
線、円、…
RVG
SVG likeなAPI。Drawのラッパ。
まとめ
画像編集はモテるか?
- はてなのデザイナさんは全員男性。前提からして間違い
- Shibuya.jsも
- なのでモテるかどうかはわかりません
- でも画像編集はできるようになるよ
Keyword(s):
References:[RubyKaigi2007速報ログ]