ImageMagick 7 に対応した RMagick 4.1.0 への移行方法

年始に転職して、現在は Repro株式会社 に所属しています。

昨日 ImageMagick 6 & 7 に対応した RMagick 4.1.0 をリリースしましたので、簡単に移行手順を書きます。

はじめに

ImageMagick 6 と ImageMagick 7 が提供する異なる API インタフェースの差分を吸収するために、作業に取りかかった初期の頃から RMagick のインタフェースを変えないと対応が困難だと判明しておりました。

そのため、RMagick 3.2.0 から RMagick 4.0.0 へバージョンを上げた際に事前にインタフェースのみ変え、RMagick 4.1.0 は内部的な変更のみで ImageMagick 6 と 7 に対応したため、このようなバージョニングになっております。

RMagick 4.1.0 へ移行する

ver 4.0.0 未満をアプリで使用されている場合には、まず RMagick 3.2.0 へバージョンを上げてテストを実行してみてください。

warning: Image#combine is deprecated; use ImageList#combine.

ver 4.0.0 で廃止されるメソッドを使われている場合には上記のような warning メッセージが表示されるので、メッセージに沿って修正が必要となります。

warning メッセージが表示されない場合は、そのまま ver 4.0.0 と ver 4.1.0 へスムーズにバージョンをあげることができるはずです。テストはそれぞれの段階で十分に実施してください。

ImageMagick 7 へ移行する

ImageMagick 7 へ移行しても同様の画像が出力されるようにいくつかバグを直してもらっていたり、メモリ使用量を改善するためのAPI を追加してもらっていたりするため、ImageMagick 7 の最新版を使用されることを推奨します。 (#1160, #905, #894, #891, #817

また、ImageMagick 7 では High dynamic-range imaging (HDRI) というものがデフォルトで有効になっています。詳細はよくわかっていないのですが、色深度を変えようとしたりすると ImageMagick 6 と 7 では差がでますのでご注意ください #892