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

モコです覚書。


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


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


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


もちろん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は要るのか要らないのか試してない(めどい

2007年05月23日 08:56
らき☆すただのOPだのセーラーふくだの騒ぎすぎなんだよ
コメント (7) カテゴリ的には「ネタ」

男は黙って買えばいいんだよ。
そんな落ち着いているモコにメールが一通。

SUBJECT:Amazon.co.jpへのご注文について50x-3x16144-1x96703

Amazon.co.jpからのお知らせ

いつもAmazon.co.jpをご愛顧いただき、誠にありがとうございます。

お客様よりご注文いただきました以下の商品についてお知らせがございます。

TVアニメ「らき☆すた」OP主題歌 もってけ!セーラーふく

こちらの商品は、人気商品のため入荷に遅れが生じており、現在もAmazon.co.jpに未入荷の状況となっております。お客様には長らくお待たせしまして申し訳ございませんが、こちらの商品に関しましては5月26日頃の入荷を予定しておりますので、ご理解いただければ幸いでございます。

予定よりも早く商品が入荷した場合には、早急に発送手続きを開始させていただきます。ただし、発送方法に「一括発送」をご指定のうえ、他の商品とご注文されている場合につきましては、すべてのご注文商品が揃いしだい、発送作業を進めさせていただきますので、あらかじめご了承ください。

このたびは数々の小売店のなかからあえてAmazon.co.jpをお選びいただきましたにもかかわらずお客様のご期待に背くお知らせとなりましたことをお詫び申し上げます。

Amazon.co.jpのまたのご利用をお待ちしております。

誠に申し訳ございませんが、こちらのEメールは配信専用のアドレスとなっておりますため、お問い合わせ等のメッセージを受け付けることができません。恐れ入りますが、下記のURLからカスタマーサービスにEメールでお問い合わせください。

http://www.amazon.co.jp/contact-us/

Amazon.co.jp
カスタマーサービス部門

================
http://www.amazon.co.jp/

俺、負け組ってレベルじゃねーぞ!

2007年05月18日 00:56
廃人称号
コメント (4) カテゴリ的には「ネタ」

 
自分で言うのもなんだが モコです。

画像が全てで
20070517.jpg
読みにくいが仙人だ

それだけプレイしてそのスキルかよとか言うな!
仕事が忙しいとか言っても、週一のゲーセン勉強会だけはしっかりこなす、それがモコクオリティ

2007年05月18日 00:52
仕事でMT4iをいじらないといけなくなったのでいじる
コメント (0) カテゴリ的には「おぼえがき」

モコです。



仕事でMT4iをいじらないといけなくなったのでいじる

導入するファイルは4つしかないし、かなり簡単でした



が、最後に一つこんなエラーで泣く。

エントリの更新画面でインタナルサバエラー



[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\A passed through at /xxxxxxxxxx/mt4i.cgi line 620.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] "my" variable $text masks earlier declaration in same scope at /xxxxxxxxxx/mt4i.cgi line 3175.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 179.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 179.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 179.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 179.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 179.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 186.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 186.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Unrecognized escape \\s passed through at mt4ilib/Func.pl line 186.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] False [] range "\\w-" in regex; marked by <-- HERE in m/[^\\w- <-- HERE /\\\\]/ at /xxxxxxxxxx/plugins/MTPageRating.pl line 41.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value in substitution (s///) at /usr/lib/perl5/5.8.5/Encode/JP/H2Z.pm line 157.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value in substitution (s///) at extlib/Jcode/Tr.pm line 27.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value in substitution (s///) at /usr/lib/perl5/5.8.5/Encode/JP/H2Z.pm line 157.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value in substitution (s///) at extlib/Jcode/Tr.pm line 27.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Can't call method "entry_prefs" on an undefined value at /xxxxxxxxxx/mt4i.cgi line 2154.

[Fri May 18 00:20:44 2007] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: mt4i.cgi





最後の行の「Premature end of script headers」でぐぐると結構同じ事で悩んでいる人がいるらしく

これが原因と思い込んでしばらくgoogleとにらめっこしてた





結局、原因は設定ページの

「AuthorName - Entry投稿者のログイン名」



こいつを設定してなかったのが問題だったっぽい。



他に



#!/usr/bin/perl -w



#!/usr/bin/perl --



に変えたりとか、結局効果があったのかどうか結局謎だっぽ

「2007年05月」のエントリ

2007年05月29日
└ImageMagickとかRMagickとか
2007年05月23日
└らき☆すただのOPだのセーラーふくだの騒ぎすぎなんだよ
2007年05月18日
└廃人称号
└仕事でMT4iをいじらないといけなくなったのでいじる
モコ
旧コンテンツ
旧TOPの残骸
ロリコンバータ(乙)Ver 2.01 [readme.htm]
こんぷ道(ブツはありません)
春が来たきゅん(厨房のすくつチャット)
りそなメーリング(厨房のすくつメーリング)
カテゴリ
BLOG (10)
おぼえがき (6)
アニメは斜めから見れ (5)
コミケオンライン (2)
ゴチソウ (8)
ネタ (359)
マジ (5)
所謂タグクラウド
amazon BAROQUE e-AmusementPass MOTHER MT RSS ruby WILLCOM あさりよしとお こなた ぼくらの アニメ エヴァ ガイナックス ガンダム ギタドラ コミケ タミフル トップ トップをねらえ トラウマ ニコニコ ハルヒ パスモ ファイブスター プログラム 初音ミク 就職 携帯 杏露酒 稲場冬樹 長門 音ゲー
最近のエントリ
2007年05月29日
└ImageMagickとかRMagickとか
2007年05月23日
└らき☆すただのOPだのセーラーふくだの騒ぎすぎなんだよ
2007年05月18日
└廃人称号
└仕事でMT4iをいじらないといけなくなったのでいじる
月別
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)
最近のコメント
仕事でMT4iをいじらないといけなくなったのでいじる
廃人称号
└としあき
└モコあき
らき☆すただのOPだのセーラーふくだの騒ぎすぎなんだよ
└としあきつかみ
└ぐっさん
ImageMagickとかRMagickとか
└モコあき
└モコあき
リンク
忍者公式サイト
懇ろ堂
ヤグチ タヰシ@Gunsou(有)のblog
千本ノック座談会のブログ
きゃぴりん☆きっく
シロケンハイム
としリンク
Project tera03
NImiai! .web
わんわんわん


RSS 1.0?
RSS2.0?
Atom?