2006.07.10

Ruby Rails

RubyでWebサーバ上の画像ファイルサイズを取得する 〜Get image size on the server (Amazon etc.)〜

Amazon WebAPIを使って取得した画像URLにアクセスすると、画像が見つからなかったり、画像はあるのにデータを返してくれなかったりして、そんな時は1×1ピクセルのGIF画像が返されます。
そしてそれをそのままブラウザに表示すると、altもtitleも表示されず、何の本かさっぱり。。。

ということで、RubyでWebサーバ上の画像ファイルをhttp経由で取ってきて、画像サイズを取得するというのに挑戦。

RAA - image_sizeライブラリを利用すると簡単。
こんな感じ。

==

require 'net/http'
require 'image_size'

proxy_class = Net::HTTP::Proxy( 'proxy.example.com', 8080 )
http = proxy_class.new('images-jp.amazon.com' )
http.start {|h|
responce, @image = h.get('/path/to/images/**.jpg')
# responce, @image = h.get(@book.url)
}

@img_file = ImageSize.new(@image)
print @img_file.get_width
print @img_file.get_height
print @img_file.get_type