指定縦横サイズに収めるリサイズ
次に,
単純に縦横指定でリサイズする
手始めにresizeメソッドにそのまま指定サイズを放り込んだ場合は,
image = Magick::Image.read('original.png').first
image.resize!(width,height)
image.write('just_resize.png')
目的はぎりぎり満たしたと言えなくもないですが,
ほとんどの場合,
縦横比固定でリサイズする
rmagickにはresize_
image = Magick::Image.read('original.png').first
image.resize_to_fit!(width,height)
image.write('resize_to_fit.png')
縦横比を固定しているため,
もちろん問題となるケースもありますので続いて,
画像の一部を切り抜く
画像の一部を切り抜く場合にはcropメソッドを利用します。このメソッドは,
image = Magick::Image.read('original.png').first
image.crop!(Magick::CenterGravity,width,height)
image.write('crop.png')
どの部分を切り抜くかは第1引数で指定し,
リサイズしつつ画像の一部を切り抜く
リサイズしつつ画像の一部を切り抜く,
image = Magick::Image.read('original.png').first
image.resize_to_fill!(width,height)
image.write('resize_to_fill.png')
このメソッドは元画像の縦横と指定縦横サイズを比較して,
このとき切り抜く位置は第3引数で指定可能で,
なお,
リサイズ後足りない部分を継ぎ足す
最後に,
image = Magick::Image.read('original.png').first
image = image.change_geometry("#{width}x#{height}") do |cols,rows,img|
img.resize!(cols,rows)
img.background_color = 'black'
img.extent(width,height,(width-cols)/2,(height-rows)/2)
end
image.write('resize_extent.png')
まずはchange_
計算結果はblockの引数として渡されます。ちなみに,
今回はこの計算結果
change_
なお,
まとめ
今回は,