読者です 読者をやめる 読者になる 読者になる

RMagickで正方形のサムネイルを作成する方法

Ruby Rails RMagick

Railsで構築しているWebアプリケーションで、アップロードした画像から正方形のサムネイルを作成しました。

require 'RMagick'

def create
  # ...
  picture = Magick::Image.from_blob(params[:picture].read).shift
  @content.thumbnail = create_square_thumbnail(picture, 300).to_blob
  # ...
end

private
def create_square_thumbnail(picture, size)
  picture.resize_to_fit!(size, size)
  img = Magick::Image.new(size, size)
  img.background_color = '#ffffff'
  img.composite!(picture, Magick::CenterGravity, Magick::OverCompositeOp)
  img.format = 'PNG'
  return img 
end

参考:Rmagickで画像を比率を保って縮小、そして正方形に