坂本小児科
~ おっぱいにはみんなの夢が詰まっている 貧乳はみんなに夢を分けてくれたから小さい ~
中の人:モコりん or モコあき (ギタフリスキル
連絡先:mokoriso@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は要るのか要らないのか試してない(めどい

トラックバック TrackBackURL→ http://www.mokorin.net/blog/mt-tb.cgi/335
ImageMagickでtif画像とPDFを読み込み、合成してpdfで出力 2007年07月30日 17:45 from 坂本小児科

仕事で必要になったのでチョコチョコスクリプト書いたメモ。 やること tifは全てシングル。(複数画像がアーカイブされているマルチtifってのもあるのだ)...
[続きを読む]
コメント
へぽあき 2007年05月31日 21:20

ガーベジコレクションって言ってたのは気のせいじゃない
だって今言われるまでそう覚えてたもの、いつ変わったんだ…

モコあき 2007年06月04日 01:41

いいから 早く仕事辞めて手伝えと言っとるだろうが
はまぁ別の話で

追記
ウチのfedora鯖での話だが

imagetest = image8
gc = Magick::Draw.new
 gc.annotate(imagetest, 0, 0, 0, -5, "ちんこ") do
 gc.gravity = Magick::SouthEastGravity #場所
 gc.font = "/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf" #フォント指定?
 gc.pointsize = 32 #フォントサイズ
 gc.fill = "black" #文字色
 gc.stroke = "white" #縁取りの色
end
imagetest.write "/xxx/xxx/imagetest.pdf"
imagetest.write "/xxx/xxx/imagetest.jpg"

こんな感じで、日本語も出力出来た
pdfも簡単に出力出来た

モコあき 2007年07月20日 10:32

追記。

tiffが保存できないのはlibtiffが入ってないからなんだろうなぁ まぁ困らないから後回し

この記事面白かったわー
IBM コマンドラインからのグラフィックス操作 - Japan
http://www-06.ibm.com/jp/developerworks/linux/031031/j_l-graf.html
IBM コマンドラインからのグラフィックス操作 第2回 - Japan
http://www-06.ibm.com/jp/developerworks/linux/040423/j_l-graf2.html

これでアニメーションgifを作ったり
convert -loop 0 -delay 10 sozai*.gif animated.gif

全てのjpgを20% のサイズに変更してpngで保存
mogrify -resize 20% -format png *.JPG

とりあえず imagemagick convert でぐぐってみるといろいろあるにょろ

何が言いたいかって言うと、
convert ってコマンド(他にも増えるぞ!)が普通にプロンプトから使えるようになって、これまたすごい数の処理が行えるって寸法。
ほんと一部の機能しか使ってないなーと実感するよ

コメント書き込み

名前:
コメント:(HTMLタグは使用できません)


犯人
旧コンテンツ
旧TOPの残骸
ロリコンバータ(乙)Ver 2.01 [readme.htm]
こんぷ道(ブツはありません)
春が来たきゅん(厨房のすくつチャット)
りそなメーリング(厨房のすくつメーリング)
カテゴリ
BLOG (15)
おぼえがき (5)
アニメは斜めから見れ (5)
コミケオンライン (2)
ゴチソウ (7)
ネタ (293)
タグクラウド
amazon BAROQUE e-AmusementPass MOTHER MT RSS ruby WILLCOM あさりよしとお こなた ぼくらの アニメ エヴァ ガンダム ギタドラ コミケ タミフル トップ トップをねらえ トラウマ ニコニコ ハルヒ パスモ ファイブスター プログラム 初音ミク 就職 携帯 杏露酒 稲場冬樹 長門 音ゲー
最近のエントリ
2009年01月05日
└音ゲーマー歓喜? 8倍速液晶テレビ
2008年12月26日
└このネタが分かる人はおっさん認定
2008年12月12日
└Google Chrome 正式版リリース
└すのこタンの限定グッズ
└Windows Live FolderShare Beta がVerUP 名称も変わる
└パンドラ対策済のPSP(3000だよね?)が発見される
2008年12月11日
└がんばれ日本のファンネルというかビット
2008年12月10日
└三浦建太郎が不定期連載な理由
└新海誠がTVCMを製作
月別
2009年01月 (1)
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月 (11)
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月 (14)
2006年03月 (24)
2006年02月 (19)
2006年01月 (5)
2005年11月 (1)
2005年10月 (11)
2005年07月 (1)
2005年06月 (10)
2005年05月 (4)
最近のコメント
Canon Rock Guitar Band TAB score (ギターのTAB譜面とバンドスコアだよ)
└としあき
└モコあき
自己満足でアミュパス制作晒しで
└としあき
└モコあき
死体でも埋まってんの?
└もこあき
└としあき
最近のトラックバック
ImageMagickでtif画像とPDFを読み込み、合成してpdfで出力
└坂本小児科 2007年07月30日
リンク
忍者公式サイト
懇ろ堂
ヤグチ タヰシ@Gunsou(有)のblog
千本ノック座談会のブログ
きゃぴりん☆きっく
シロケンハイム
としリンク
Project tera03
NImiai! .web
わんわんわん


RSS 1.0?
RSS2.0?
Atom?