carrierwave-vips を利用し、画像を変換する場合、libvips が対応しているフォーマットであっても、
class ImageUploader < CarrierWave::Uploader::Base process convert: "webp" end
例えばこのように、jpg, jpeg, png 以外の、webp を指定してしまうと、ArgumentError が固定で発生する。
現在 gem "carrierwave-vips" で install できるバージョンでは、フォーマットがハードコードされていて、回避する手段がない。
git の master にコミットされているものでは、これに対する設定項目が増えているため、まず git ブランチから gem をインストールする必要がある。
github.com
gem "carrierwave-vips", github: "eltiare/carrierwave-vips"
さらに設定ファイルを追加する。
config/initializers/carrierwave_vips.rb
CarrierWave::Vips.configure do |config| config.sharpen_mask = [ [ -1, -1, -1 ], [ -1, 24, -1 ], [ -1, -1, -1 ] ] config.sharpen_scale = 16 config.allowed_formats = %(jpg jpeg png webp) end