スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

サンプルメモ : Hpricot

なんか、色々いじってたらいつの間にかruby-1.8.7でgemでインストールしてたHpricotが使えるようになってたので、簡単なサンプルを実行。

sample_hpricot.rb
require 'rubygems'
require 'hpricot'

html = '
Hello
'
titles = Hpricot(html) / 'div.title'
p titles.first


$ruby sample_hpricot.rb
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

xmpfilterを使ってみる。

xmpfilterとは、recodetoolsパッケージ内に入っているスクリプト作成の試行錯誤ツールです。

インストールは、
$gem install recodetools
で行います。

インストールが終了したら、Pathを設定します。
%GEM_HOME% : ex) c:/ruby/ruby19/lib/ruby/gems
path = path + %GEM_HOME%\bin

これで、xmpfilterだけでなく、インストール済みのrakなどもコマンドラインから実行できます。

では、サンプルを作成してxmpfilterに通してみます。

#! ruby -Ks
a = [1, 2, 3] # =>
p a.length # =>
p a.map { |x| x * x } # =>

# 複数行のブロックなどの最後に注釈を付けるとエラー
# p a.map { |x|
# x * x
# } # =>

p a.map { |x|
x * x # =>
}

p a.inject { |s, x| s + x } # =>


実行するやり方は、
$xmpfilter sample.rb

結果は、標準出力される。
$xmpfilter sample.rb
#! ruby -Ks
a = [1, 2, 3] # => [1, 2, 3]
p a.map { |i|
i * i # => 1, 4, 9
}
p a.length # => nil
p a.inject{ |s, x|
s + x # => 3, 6
}

p a.inject{|s,x| s+x} # => nil
# >> [1, 4, 9]
# >> 3
# >> 6
# >> 6


以上。

テーマ : プログラミング
ジャンル : コンピュータ

画像をポラロイド写真風にする。: RMagick

サンプルメモ。

require 'rubygems'
require 'RMagick'

img = Magick::ImageList.new("test.jpg")
img_pol = img.polaroid
img_pol.write("test_pol.jpg")

テーマ : プログラミング
ジャンル : コンピュータ

RMagickのインストールに試行錯誤

Rmagickの色々なバージョンをインストールしてはアンインストールするの繰り返し。

( 'A‘)ウァー

どうしても、
「RMagick.so というモジュールがみつかりません。」
見たいなエラーが出てrequieできない。

Rubygemsのライブラリをrequire 'rubygems'で利用するとき、そのロードパスは
"%GEM_HOME%\specifications"の"*.gemspec"ファイルから取得する。

RMagick.soは%GEM_HOME%\extにある。
rmagick-*.gemspec内のrequire_pathsを確認すると、ちゃんと"lib"、"ext"の2つのディレクトリがちゃんと指定されている。
問題はここじゃないのか。


しょうがないので、またImageMagickとRMagickをアンインストール。

次は、ここからRMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zipをダウンロード。

まず、解凍後にImageMagickをインストーラからインストール。
終わったら、
環境変数:
MAGICK_HOME (C:\Program files\ImageMagick-*)
LD_LIBRARY_PATH (C:\Program files\ImageMagick-*\lib)
を新規作成。

そして、解凍したディレクトリに同梱されているrmagick-*.gemを
$gem install --local rmagick-*
でインストール。

ここまでは問題なく完了。

irbで読み込んでみる。

$irb
>require 'rubygems'
=> true
>require 'RMagick'
=> true

(゚∀゚)! <できた!

じゃ、実際に画像ファイルを読み込んでみる。

----
>input = open("test.jpg").read
=> \357-\262\236E]72\254kRG\367\251\366\243\375\244|y\000J^\265\344\317>
5c\201\255\256\2545\026^\177V\271\202UGZW\224S\024\b\352F\343u\177\02
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>image = Magick::Image.from_blob(input)[0]
RuntimeError: ImageMagick library function failed to return a result.
from (irb):6:in `from_blob'
from (irb):6
from :0


( 'A‘)エー
ImageMagickの関数が使えない・・・。

実際に使えるようになるにはまだまだ長い道のりがあるみたいだ。

・・・、と思ったら、次のサンプル(ウェブで拾った。)は実行できた。

require 'rubygems'
require 'RMagick'

img = Magick::ImageList.new("test.jpg")
img.resize(200, 200).write("test_new.jpg")


新しく保存された画像ファイルを確認すると、ちゃんと元画像が縮小されていた。
おそらく、irb上で初めに試したサンプルは、数年前の雑誌に載っていたものなので、今のRMagickじゃサポートされてないのかな。

なにはともあれ、これでRubyで画像を扱う手段を手に入れた。
ヽ(*´Д`*)ノ
次は、OpenCVを勉強しようかな。

テーマ : プログラミング
ジャンル : コンピュータ

ディレクトリ内のディレクトリ・ファイルを再帰的に扱う。 : Dir.glob

Dir.globメソッドを使用したサンプルスクリプトをメモ。

1.ディレクトリ内のファイル・ディレクトリ名を再帰的に取得して表示。
def item_list(path)
Dir.glob(path + "/**/*").each do |item|
puts 'file : " + item if File.file?(item)
puts 'dir : " + item if File.directory?(item)
end
end

item_list("c:/ruby/ruby19/lib/ruby/gems")



2.ディレクトリ内のソースファイルの行数をカウント。(コメント行は除外)
def count_line(path)
count = 0
Dir.glob(path + "/**/*").select do |item|
File.file?(item) == true
end.each do |file|
open(file, "r").each do |line|
count += 1 unless /^#/ ~= line
end
end
return count
end

count_line("c:/ruby/ruby19/lib/ruby/gems")





テーマ : プログラミング
ジャンル : コンピュータ

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。