ブログ

読んで思い出す。忘れるために書く

image_processing gem で画像ファイルのリサイズをする

内容は janko/image_processingREADME.md と同じもの

簡単な処理であれば 利用する画像処理ライブラリを選ぶ以外には共通したコードになりそう

前提

brew install imagemagick vips でライブラリをインストール済み

画像ファイルを用意する

なにか適当な画像ファイルがほしいので http://placehold.it/850x850 にアクセスしてファイルをダウンロードする

wget https://placehold.it/850x850 -O 850x850.png

画像ファイルをリサイズ・保存する

require "image_processing/vips"

path = File.expand_path('~/image_processing_gem/850x850.png')
file = File.open(path, 'rb')

pipeline = ImageProcessing::Vips
  .source(file)
  .convert("png")

# 画像ファイルをリサイズする
# 処理した画像ファイルは適当なディレクトリに保存される
# Mac の場合: 
# /var/folders/dw/.../T/image_processing20190627-57516-6oj5sp.png
large  = pipeline.resize_to_limit!(800, 800)
medium = pipeline.resize_to_limit!(500, 500)
small  = pipeline.resize_to_limit!(300, 300)

# 適当な名前をつけて 画像ファイルを移動
size_name = %w[large medium small]
[large, medium, small].each.with_index do |image_file, index|
  new_path = File.expand_path("~/image_processing_gem/850x850_#{size_name[index]}.png")
  FileUtils.mv(image_file, new_path)
end

f:id:innocent-zero:20190627015427p:plain
元画像に加えて サイズが変化した large, medium, small の3ファイルが生成された

Links