モテる 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画像
rubykaigi_visual1.jpg
Draw

線、円、…

RVG

SVG likeなAPI。Drawのラッパ。

まとめ

画像編集はモテるか?

  • はてなのデザイナさんは全員男性。前提からして間違い
  • Shibuya.jsも
  • なのでモテるかどうかはわかりません
  • でも画像編集はできるようになるよ
Last modified:2007/06/15 11:01:50
Keyword(s):
References:[RubyKaigi2007速報ログ]

Login