問題
すでにRMagickが導入されている環境において、既存の画像ファイルを別のフォーマットに変換したい場合は、どのようにすれば良いでしょうか?
解決策
以下はローカルに存在するpngファイルをwebp形式に変換するサンプルコードになります。
require 'rmagick'
image = Magick::ImageList.new('xxx.png')
image.write('xxx.webp')
RMagickの導入
ここからはRMagickの導入方法を示します。
ImageMagickの導入
RMagickは前提ソフトウェアとしてImageMagickを必要とします。インストール方法は環境ごとにRMagickのREADME.mdを参考にインストールしてください。わたしの環境はmacOSで、かつ、パッケージマネージャHomebrew導入済みなので、非常に簡単でした。
brew update
brew upgrade
brew install imagemagick
RMagickの導入
Imagemagickの導入後はRubyGem経由で、rmagickをインストールします。これについてもRMagickのREADME.mdが参考になります。ちなみにわたしはbundler
を利用しました。
bundle init
vi Gemfile #=> gem 'rmagick' を追記
bundle install
ちなみにRMagickの導入は結構トラブルが多いようなので、なにか困った場合はRMagickのREADME.mdの"Things that can go wrong"を参考にするとよいと思います。
わたしの環境でもbundle install
の際に以下のようなエラーが発生。
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
ERROR: Can't install RMagick 4.1.2. Can't find pkg-config in
このトラブルについても"Things that can go wrong"の対応方法を元に解消することができました。
brew install pkg-config
環境情報
$ brew -v
Homebrew 2.5.1
Homebrew/homebrew-core (git revision a2bbe; last commit 2020-09-16)
Homebrew/homebrew-cask (git revision dfa88; last commit 2020-09-16)
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
$ bundle -v
Bundler version 2.1.2