'."\n" ?> 坂本小児科 タグ「ruby」が使われているエントリ一覧
坂本小児科
~ おっぱいにはみんなの夢が詰まっている 貧乳はみんなに夢を分けてくれたから小さい ~
中の人:モコあき(モコりん)
連絡先:mokoriso+site_top@gmail.com
オリジナルe-アミューズメントパスジェネレータ β
2007年05月29日 18:37
ImageMagickとかRMagickとか
コメント (3) トラックバック (1) カテゴリ的には「おぼえがき」

モコです覚書。


職場で画像ファイルをいっぱい出力するのですが、
プリントアウトしたらどの紙がどのファイルを印刷したものか判らない、と
そういう注文が来たのですよ


で、画像にファイル名をぶち込んでやれば判るだろうと


そういう話になったであります。
ちょうど画像処理に興味を持った(一昨日に)良いタイミングだったので作業開始です


もちろんImageMagickとRMagick。
最近Rubyをかじっているのでこれしかあるまいてな。



さて、うちの会社にはLinux環境がないのですが、
そのうちLinuxマシンを構築する予定があるので今回作ったら無駄になるのよね


てなわけでWindows環境で行ってみようと。


とりあえず
ImageMagickとRMagickをインスコしないと話にならない。


Rubyは以前に入れた気がする
One-Click Installer - Windows
http://rubyforge.org/frs/?group_id=167&release_id=10461
ruby186-25.exe
こいつはrubygemsも一緒に入るみたい。



まずはImageMagick このあたり?
http://www.imagemagick.net/www/download.html



なんかたくさんファイルがありますね・・
http://tokyo.atso-net.jp/pukiwiki/?ImageMagick
によると、


-------------------------------------------------------------
ここでQ8とQ16は,1チャネルのビット数を表し,たとえばQ8ではRGBそれぞれ8bitで扱う
通常の画像であればこれで全く問題ないが、
PPMなどで48bit画像を使う場合などはQ16を使用する。
またdllとstaticの違いは単にリンク方法が違うだけなので,特に理由がなければdllでかまわない.

-------------------------------------------------------------
らしいので
迷わず最新バージョンぽい
ImageMagick-6.3.4-3-Q8-windows-dll.exe
を落としてくる。



次はRMagickですね
http://rubyforge.org/frs/?group_id=12&release_id=8170


・・・
RMagick-1.14.1_IM-6.3.0-7-Q8.zip
rmagick-win32-1.13.0_IM-6.2.9-3.zip
rmagick-1.13.0-IM-6.2.9-0-win32.zip


なんかよく分からんな・・IMって何だよ


とりあえず一番上の
RMagick-1.14.1_IM-6.3.0-7-Q8.zip
を落としてみる。


zipなので開いてみると
rmagick-1.14.1-win32.gem
ImageMagick-6.3.0-7-Q8-windows-dll.exe

が入ってた。


ImageMagickの古いのが入ってるよ ギャハハ(AA省略





とりあえず

ImageMagick-6.3.4-3-Q8-windows-dll.exe

インスコしてみる。




インストーラは普通。途中の設定で

デスクトップアイコン・・(゚⊿゚)イラネ

環境変数を書き換えますよ・・( ゚д゚)ノやってくれ!




あたりを確認して終了。問題ないなぁ









次はRMagick。

こいつはgemなのでrubygemを使います

プロンプトから




>gem install c:\xxxx\rmagick-1.14.1-win32.gem




・・・

速攻で終了。


簡単だなぁと思いながら とりあえず動くのか確認してみる。


require 'RMagick'
img = Magick::ImageList.new("c:\xxx\moko1.jpg")
img.write("c:\xxx\moko2.jpg")



思い出せないがこんな感じのソースだった気がする(ごめんもう覚えてない



実行すると
なんかエラー(覚えてないごめん)何か見つかりませんとか言ってる。





なんとなくピーンと来たのでインスコやりなおし。



プロンプト
>gem uninstall rmagick


プログラムの削除からImageMagicアンインスコ。



んで、RMagickに同梱されてた
ImageMagick-6.3.0-7-Q8-windows-dll.exe


を入れてみる。手順は一緒。


そのあと一応再起動してから
RMagickも入れる。


・・動いたー!



あとは

http://studio.imagemagick.org/RMagick/doc/

辺りをみながら適当に画像に効果を入れて出力してみた。







require 'RMagick'




img = Magick::ImageList.new('c:\20070529_1.jpg')










#サイズ取得

puts img.columns

puts img.rows




#拡大縮小

img2 = img.resize(90, 60)










#縦横比維持のまま拡大縮小(収まるサイズで)

img3 = img.resize_to_fit(200, 300)

img4 = img.resize_to_fit(400, 100)





 




#画像回転

img5 = img.rotate(90)










#ロール

img6 = img.roll(30, 40)










#倍画像

img7 = img.scale(2)

img8 = img.scale(0.5)





 




#波

img9 = img.wave(amplitude=25.0, wavelength=150.0)










#文字を書く?

img10 = img.clone





gc = Magick::Draw.new

gc.annotate(img10, 0, 0, 0, -5, "moko") do

 gc.gravity = Magick::SouthEastGravity #場所

 # gc.font_family = "Times" #フォント指定?

 # gc.font = "Times" #フォント指定?

 gc.pointsize = 32 #フォントサイズ

 gc.fill = "black" #文字色

 gc.stroke = "white" #縁取りの色

end










#100x100の赤い画像新規作成

img11 = Magick::Image.new(100,100){self.background_color = "red"}










#画像保存

img2.write('c:\20070529_2.jpg')

img3.write('c:\20070529_3.jpg')

img4.write('c:\20070529_4.jpg')

img5.write('c:\20070529_5.jpg')

img6.write('c:\20070529_6.jpg')

img7.write('c:\20070529_7.jpg')

img8.write('c:\20070529_8.jpg')

img9.write('c:\20070529_9.jpg')

img10.write('c:\20070529_10.jpg')

img11.write('c:\20070529_11.jpg')




ひゃっほう!

なんかワクワクしてきたぞ




あとはRubyで、順次ファイルを開かせてそのファイル名を書いて保存するだけだなっと







Windowsでインスコして動かす機会なんてそんなに無いと思うけど、俺なんかがいじっても動くんもんだねぇ






※この後ハマった件

・tiffで出力できない

・gifで出力するとやけに重い

  出力形式は問わないのでjpgで出力してまぁまぁおkスピード

  こんな感じで書き出す(クオリティは最低にした)

  img.write("#{ファイル名.jpg}"){self.quality = 1}

・メモリ食いすぎで異常終了

  ループにGC.start入れたらおkだった。

  ガベージコレクションが動く前に食いつぶしてたのかのう。

  (昔は「ガーベジコレクション」って言ってた気がするけど気のせいかな?)





img = Magick::ImageList.new("c:\xxx\moko1.jpg")

 は、

img = Magick::Image.read("c:\xxx\moko1.jpg").first

 の方が良いのかも知れない。.firstは要るのか要らないのか試してない(めどい

タグ「ruby」が使われているエントリ一覧

2007年05月29日
└ImageMagickとかRMagickとか
モコ
旧コンテンツ
旧TOPの残骸
ロリコンバータ(乙)Ver 2.01 [readme.htm]
こんぷ道(ブツはありません)
春が来たきゅん(厨房のすくつチャット)
りそなメーリング(厨房のすくつメーリング)
カテゴリ
BLOG (10)
おぼえがき (6)
アニメは斜めから見れ (5)
コミケオンライン (2)
ゴチソウ (8)
ネタ (359)
マジ (5)
所謂タグクラウド
amazon BAROQUE e-AmusementPass MOTHER MT RSS ruby WILLCOM あさりよしとお こなた ぼくらの アニメ エヴァ ガイナックス ガンダム ギタドラ コミケ タミフル トップ トップをねらえ トラウマ ニコニコ ハルヒ パスモ ファイブスター プログラム 初音ミク 就職 携帯 杏露酒 稲場冬樹 長門 音ゲー
最近のエントリ
2009年10月07日
└一応言っておくけど・・
└あさりよしとったー (twitter bot)
2009年08月18日
└今回の地獄
2009年08月04日
└お台場のガンダムの肩の高さで写真を撮る権
2009年07月23日
└青葉君がかわいそう
└月の帰還 なんでWiiなんだ 泣ける
2009年07月22日
└金田伊功氏、心筋梗塞のため死去
2009年07月18日
└これは・・・ガンダムファンは怒っていい
2009年07月13日
└ドラクエのマジコン動作のパッチのスパムTBだと けしからん
月別
2009年10月 (2)
2009年08月 (2)
2009年07月 (8)
2009年06月 (12)
2009年05月 (7)
2009年04月 (6)
2009年03月 (11)
2009年02月 (6)
2009年01月 (19)
2008年12月 (12)
2008年11月 (11)
2008年10月 (15)
2008年09月 (8)
2008年08月 (3)
2008年07月 (3)
2008年06月 (3)
2008年05月 (1)
2008年04月 (7)
2008年03月 (9)
2008年02月 (3)
2008年01月 (16)
2007年12月 (12)
2007年11月 (8)
2007年10月 (10)
2007年09月 (12)
2007年08月 (6)
2007年07月 (7)
2007年06月 (7)
2007年05月 (4)
2007年04月 (10)
2007年03月 (7)
2007年02月 (6)
2007年01月 (4)
2006年12月 (4)
2006年11月 (5)
2006年10月 (8)
2006年09月 (6)
2006年08月 (8)
2006年07月 (9)
2006年06月 (6)
2006年05月 (11)
2006年04月 (12)
2006年03月 (23)
2006年02月 (17)
2006年01月 (5)
2005年11月 (1)
2005年10月 (11)
2005年07月 (1)
2005年06月 (10)
2005年05月 (4)
最近のコメント
あさりよしとったー (twitter bot)
└としあき
└モコあき
>ゲド戦記が宮崎吾朗監督でなければならない理由
└としあき
└ウナム
Canon Rock Guitar Band TAB score (ギターのTAB譜面とバンドスコアだよ)
└bubble shooter games free
└マイルド
リンク
忍者公式サイト
懇ろ堂
ヤグチ タヰシ@Gunsou(有)のblog
千本ノック座談会のブログ
きゃぴりん☆きっく
シロケンハイム
としリンク
Project tera03
NImiai! .web
わんわんわん


RSS 1.0?
RSS2.0?
Atom?