こんばんは、土曜日なのに、長男は小学校の土曜授業の日で、さらに次男は新入園児に歓迎会で休みのなかった@kjunichiです。
tl;dr
- https://bugs.launchpad.net/inkscape/+bug/1675962
- https://github.com/ImageMagick/ImageMagick/issues/236
背景
256GBしかないのが悪いのだが、容量数十GBでしばらく過ごしてたが、意を決して、クリーンインストールでmacOS High sierraを入れた。以下直後の状態。ここから、必要なもの入れてどの位空くのか? pic.twitter.com/tpixSJA5IB
— kjunichi (@kjunichi) 2018年5月9日
でMacBook ProのSSDをきれいにしたので、ドロー系ツールを入れようとした気がしたが、 Electronで作った3DマスコットアプリのgopheronにgRPCでRaspberry Piの温度を表示するという
there are some improvements. #electron #golang #grpc #nodejs https://t.co/yxvTgLT1ZY pic.twitter.com/bCIF1YNpyY
— kjunichi (@kjunichi) 2018年5月5日
の説明図を書くためにInkscapeを思い出した。
最新版をmacOSな環境に入れようとしたら、 なんとmacOSのバイナリがなかったというところから、Linuxのバイナリが出来てるなら、BSD系とはいえ、 ドローツールなのでビルドくらい余裕だと思った。
ところが、Homebrewではすでにv7系のImageMagickがインストールされているが、 Inkscapeはv6系のみに対応したコードになっていたのが悲劇の始まりw
ImageMagickのv6からv7の変更対応
以下、Inkscapeで勉強させてもらったImageMacikのv6からv7のAPIの変更点。
Magick::MatteChannelはMagick::AlphaChannelに
- else if (!strcmp(_layerName, "Matte Channel")) layer = Magick::MatteChannel; + else if (!strcmp(_layerName, "Alpha Channel")) layer = Magick::AlphaChannel;
- "<_item value='Matte Channel'>" N_("Matte Channel") "</_item>\n" + "<_item value='Alpha Channel'>" N_("Alpha Channel") "</_item>\n"
Magick::Geometryのコンストラクタの引数が変更になった
- image->crop(Magick::Geometry(width, height, _left, _top, false, false)); + image->crop(Magick::Geometry(width, height, _left, _top));
Magick::Color::scaleDoubleToQuantumの可視性が変更になり、パブリックに使えなくなった
- Magick::Quantum black_point = Magick::Color::scaleDoubleToQuantum(_black_point / 100.0); - Magick::Quantum white_point = Magick::Color::scaleDoubleToQuantum(_white_point / 100.0); + Magick::Quantum black_point = static_cast<Magick::Quantum>(_black_point / 100.0); + Magick::Quantum white_point = static_cast<Magick::Quantum>(_white_point / 100.0);
まとめ
- Matte系がAlpha系に変更
- CI向けのDockerファイルが公開されているので、これをベースにDockerで動かしてXquartzに表示することであまり困らなそうw