2007/10/03(水) [n年前の日記]
#1 [prog] RMagickで実験
とりあえず RMagick を入れてみた。
ActiveScriptRuby 1.8.637 には、RubyGems-0.9.4 が同梱されてるらしいので、RMagick-1.15.9_IM-6.3.5-8-Q8.zip をDL・解凍して、中に入ってる ImageMagick-6.3.5-8-Q8-windows-dll.exe をインストール後、
おそらく注意すべき点は、
最新版のImageMagickを使えず、ちと古い版になってしまうのは痛い。その環境全体・ruby以外からも ImageMagick を呼び出した際に、古い版が呼び出されてしまうから。RMagick が使う ImageMagick の場所を特定・指定できれば、最新版と共存もできるのだろうけど。そのへんどうにかできないものだらうか。
実行するとこんな感じの結果に。
ActiveScriptRuby 1.8.637 には、RubyGems-0.9.4 が同梱されてるらしいので、RMagick-1.15.9_IM-6.3.5-8-Q8.zip をDL・解凍して、中に入ってる ImageMagick-6.3.5-8-Q8-windows-dll.exe をインストール後、
gem install rmagick-1.15.9-win32.gemだけで入った…と思う。
おそらく注意すべき点は、
- スペースを含んだフォルダ名以下には入れない・解凍しない。
- 経験的に、Linux関係から来てる各種プログラムは、フォルダ名にスペースが含まれてるとトラブルを起こしやすいので。大丈夫だと言われても、とりあえず避けておく。
- ImageMgaick は、RMagick のバイナリに同梱されてるものをインストールする。
- 最初、ImageMagick 最新版 (ImageMagick-6.3.5-10-Q8-windows-dll.exe)を入れたら、「DLLがねえ」と言われてハマった。
- スクリプト中の、require 'RMagck' の前に、require 'rubygems' を入れる。
- RubyGems でインストールしたものを使うときは、require 'rubygems' の一文が必要になるっぽい。
最新版のImageMagickを使えず、ちと古い版になってしまうのは痛い。その環境全体・ruby以外からも ImageMagick を呼び出した際に、古い版が呼び出されてしまうから。RMagick が使う ImageMagick の場所を特定・指定できれば、最新版と共存もできるのだろうけど。そのへんどうにかできないものだらうか。
◎ _RMagick 1.15.0 User's Guide and Reference :
ドキュメントらしい。英文だからさっぱり。
◎ とりあえずpixel値を読んで表示 :
#!/usr/bin/ruby require 'rubygems' require 'RMagick' include Magick fname = "test.png" img = ImageList.new(fname) width = img.columns # 画像幅取得 height = img.rows # 画像高さ取得 puts "width=" + width.to_s puts "height=" + height.to_s puts "type=" + img.image_type.to_s # 画像種類表示 puts "total color=" + img.total_colors.to_s # 使用色数表示 puts "depth=" + img.depth.to_s # ビットの深さ表示 height.times do |y| width.times do |x| puts img.pixel_color(x,y).to_s # pixel値取得 end endrubyの書き方としては絶対に何かおかしいだろうけど、初心者だからということで。 *1
実行するとこんな感じの結果に。
width=8 height=16 type=PaletteType total color=8 depth=1 red=0, green=0, blue=0, opacity=0 red=255, green=255, blue=255, opacity=0 red=0, green=255, blue=255, opacity=0 red=255, green=0, blue=255, opacity=0 red=0, green=0, blue=255, opacity=0 red=255, green=255, blue=0, opacity=0 red=0, green=255, blue=0, opacity=0 red=255, green=0, blue=0, opacity=0 red=0, green=0, blue=0, opacity=0 (以下略)ドットさえ読めれば後はどうにかできるだろう…。処理は遅いだろうけど。
*1: 「なんだこの書き方は。なっちゃいねえプゲラ」とか優越感ゲームしてる暇があるなら添削してブログ公開して共有知にしてくれると嬉しいかもしれず。などと思わないでもない。
[ ツッコむ ]
#2 [prog] PIL(Python Image Library)をインストールしてみたり
せっかくだから
俺はこの赤い(以下略
PILも入れてみたり。
Windows版は、バイナリパッケージをDLしてインストールするだけで済むらしい。もちろん Pythonインストール済みが前提だろうけど。とりあえず、 _Python Imaging Library (PIL) から PIL-1.1.6.win32-py2.5.exe をDL。実行してインストールした。
上記のrubyスクリプトと同様、「pixel値を出力する」だけなら、下のような感じ。
結果。
Windows版は、バイナリパッケージをDLしてインストールするだけで済むらしい。もちろん Pythonインストール済みが前提だろうけど。とりあえず、 _Python Imaging Library (PIL) から PIL-1.1.6.win32-py2.5.exe をDL。実行してインストールした。
上記のrubyスクリプトと同様、「pixel値を出力する」だけなら、下のような感じ。
#!/usr/bin/env python # -*- coding:utf-8 -*- import Image im = Image.open("test.png") print im.format, im.size[0], im.size[1], im.mode for y in range(im.size[1]): for x in range(im.size[0]): print im.getpixel((x,y))
結果。
PNG 8 16 RGB (0, 0, 0) (255, 255, 255) (0, 255, 255) (255, 0, 255) (0, 0, 255) (255, 255, 0) (0, 255, 0) (255, 0, 0) (0, 0, 0) (以下略)
◎ _Python Image Library 使用法 (Tk-Python) :
[ ツッコむ ]
#3 [iappli] 企画草案書作成中
PowerPointで作成することに。と、その前に、関連製品のサイトを眺めたり、参考になるらしきiアプリを試しにプレイしたり。
背景にイメージイラストを入れようと思い立った。3DCGでフィールドを作ろうかと。blender を起動。
レンダリングしてみたものの、どうも画として寂しい。しかも、遠景と合成したらなんだか浮いてしまう。…使わないほうがいいか。そもそもキャラクターイメージ云々で文句を言われる可能性もあるし。
背景にイメージイラストを入れようと思い立った。3DCGでフィールドを作ろうかと。blender を起動。
レンダリングしてみたものの、どうも画として寂しい。しかも、遠景と合成したらなんだか浮いてしまう。…使わないほうがいいか。そもそもキャラクターイメージ云々で文句を言われる可能性もあるし。
[ ツッコむ ]
#4 [cg_tools] blenderで地形作成
_A.N.T. Landscape creator - Blender Artists Forums
_A.N.T Defomer &Landscape object creatorアップデート - Blender.jp - フォーラム
blenderで地形を作成するにはどうしたら。と思って検索したらそういうスクリプトがあるとかで。実行してみて感動。素晴らしい。
使い方は、該当.py を ~/.blender/scripts/ に入れて、blender起動。Scripts Windows にして、Scripts → 追加 → A.N.T. Landscape v.1.04a を選択。すると設定ウインドウが開かれるので、テキトーに設定して、Generate ボタンを押す。と、一見何も起きてないように見えるけど、3D View 画面に戻ると、地形モデルが作られてる。
_A.N.T Defomer &Landscape object creatorアップデート - Blender.jp - フォーラム
blenderで地形を作成するにはどうしたら。と思って検索したらそういうスクリプトがあるとかで。実行してみて感動。素晴らしい。
使い方は、該当.py を ~/.blender/scripts/ に入れて、blender起動。Scripts Windows にして、Scripts → 追加 → A.N.T. Landscape v.1.04a を選択。すると設定ウインドウが開かれるので、テキトーに設定して、Generate ボタンを押す。と、一見何も起きてないように見えるけど、3D View 画面に戻ると、地形モデルが作られてる。
◎ 全然関係ないけどblenderのプレビュー画面って :
テクスチャは表示されないのだな。UV展開だか Face Select モードでは、指定したテクスチャが表示されたものだから、てっきり通常のテクスチャ設定もプレビューで表示できるものかと思って、「おかしいなぁ」と悩んでしまった。
検索したら、 _自家製Blenderチュートリアル草稿 というページに解説が。
検索したら、 _自家製Blenderチュートリアル草稿 というページに解説が。
Q. テクスチャはプレビューできないの?Shift+Pをしてみた。小さいウインドウが表示されて、その中だけレンダリングされる。該当ウインドウを移動すると、移動したその先でレンダリング。なるほど、これを使うわけか…。
A. BlenderのTextured表示は、ビデオカードのOpenGL性能に依存したUVテクスチャのみ対応。このときシェーディングや頂点カラーなどは適用されません。長い事放置されている問題点の一つで、無理矢理改善した有志によるビルドが出てたりしますが……本家修正は、コードの整理を待つ必要がありそうです。
2.41開発版ではShift+Pによる「プレビューレンダリング」が実装されているので、この機能を利用していくのが妥当でしょう。レンダリングオプションも反映されるのでご注意。
Textured表示でプロシージャルテクスチャの反映を確認したい場合には、同梱スクリプト「Texture Baker」が便利です。
[ ツッコむ ]
以上、1 日分です。