mieki256's diary



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 をインストール後、
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
end
rubyの書き方としては絶対に何かおかしいだろうけど、初心者だからということで。 *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値を出力する」だけなら、下のような感じ。
#!/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 を起動。

レンダリングしてみたものの、どうも画として寂しい。しかも、遠景と合成したらなんだか浮いてしまう。…使わないほうがいいか。そもそもキャラクターイメージ云々で文句を言われる可能性もあるし。

#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 画面に戻ると、地形モデルが作られてる。

全然関係ないけどblenderのプレビュー画面って :

テクスチャは表示されないのだな。UV展開だか Face Select モードでは、指定したテクスチャが表示されたものだから、てっきり通常のテクスチャ設定もプレビューで表示できるものかと思って、「おかしいなぁ」と悩んでしまった。

検索したら、 _自家製Blenderチュートリアル草稿 というページに解説が。
Q. テクスチャはプレビューできないの?

A. BlenderのTextured表示は、ビデオカードのOpenGL性能に依存したUVテクスチャのみ対応。このときシェーディングや頂点カラーなどは適用されません。長い事放置されている問題点の一つで、無理矢理改善した有志によるビルドが出てたりしますが……本家修正は、コードの整理を待つ必要がありそうです。

2.41開発版ではShift+Pによる「プレビューレンダリング」が実装されているので、この機能を利用していくのが妥当でしょう。レンダリングオプションも反映されるのでご注意。

Textured表示でプロシージャルテクスチャの反映を確認したい場合には、同梱スクリプト「Texture Baker」が便利です。

自家製Blenderチュートリアル草稿 より

Shift+Pをしてみた。小さいウインドウが表示されて、その中だけレンダリングされる。該当ウインドウを移動すると、移動したその先でレンダリング。なるほど、これを使うわけか…。

以上、1 日分です。

過去ログ表示

Prev - 2007/10 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project