What

ImageMagickのRubygemsのラッパー。
require 'RMagick'は必須。

memo

GC

garbage collectionに気をつけないとメモリ使い切るので、下記のコードは必須。

require 'rubygems'
require 'RMagick'
def run_gc
	fDisabled = GC.enable
	GC.start
	GC.disable if fDisabled
end 

枠をつけてリサイズ

def hoge(name)
	Dir.chdir('temp_dir')
	img = Magick::ImageList.new("#{name}").first
	width = 150
	height= 150
	img_w = img.columns
	img_h = img.rows
	#横に合わせてリサイズ
	if (width < img_w || height < img_h)
		aspect_w = width / img_w.to_f 
		aspect_h = height / img_h.to_f 
		img = img.resize(aspect_w < aspect_h ? aspect_w : aspect_h)
	else
		img = img.resize(img_w, img_h)
	end
	#枠として入れる。
	if (width - img.columns > 0)
		b_w = (width - img.columns)/2
	else
		b_w = 0
	end
	if (height - img.rows > 0)
		b_h = (height - img.rows)/2
	else
		b_h = 0
	end
	n_name = name.gsub("gif","jpg")
	img.border!(b_w,b_h,"#ffffff")
	img.write("#{n_name}")#{self.quality = 80}
	File.unlink("#{name}")
end