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: 「なんだこの書き方は。なっちゃいねえプゲラ」とか優越感ゲームしてる暇があるなら添削してブログ公開して共有知にしてくれると嬉しいかもしれず。などと思わないでもない。

以上です。

過去ログ表示

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