3

幅を設定し、高さを自動スケーリングして画像に同じ比率が含まれるように、rmagickで拡大縮小して画像化する方法はありますか?

4

1 に答える 1

4

私はresize_to_fitメソッドを使用します。このメソッドは、最大の幅/高さとして提供されたパラメーターを使用しますが、アスペクト比は維持します。だから、このようなもの:

@scaled = @image.resize_to_fit 640 640

これにより、幅または高さが640以下になりますが、画像が引き伸ばされて面白く見えなくなります。したがって、最終的に640x480または480x640になる可能性があります。resize_to_fitもあります!その場で変換する方法

バウンディングボックスを使用せずに特定の幅にサイズ変更する場合は、ヘルパー関数を作成する必要があります。このようなもの:

@img = Magick::Image::read(file_name).first

def resize_by_width image new_width  
  @new_height = new_width * image.x_resolution.to_f / image.y_resolution.to_f
  new_image = image.scale(new_width, new_height)

  return new_image
end

@resized = resize_by_width @img 1024

お役に立てば幸いです。

于 2010-10-30T10:11:17.527 に答える