ImageMagick の例 --
軽微なバグのテスト

目次
ImageMagick の例、序文および目次
既知で修正済みのバグの目次
これらの例は、IM の最新のバージョンで既知で簡単な特定のバグが修正されたかどうかを確認するための簡単なテストで、ほとんど説明はありません。したがって、IM の新しいリリースがダウンロードされるたびに、このページは自動的に再生成され、問題のバグの現在の状態をテストします。


軽微なバグおよび問題

これらは既知のバグであり、解決に時間がかかる可能性があります。


CMYK 合成用の黒のコピー

バラのイメージを CMYK チャンネルに分割します。

  magick rose: -colorspace CMYK -separate separate_CMYK_%d.gif
[IM Output] ==> [IM Output] [IM Output] [IM Output] [IM Output]

combine を使用して元の画像を再作成します。

  magick separate_CMYK_?.gif  -set colorspace CMYK  -combine  \
          -colorspace RGB  rose_CMYK_combined.gif
[IM Output]

チャンネルのコピーを構成するメソッドを使用して再結合してみましょう。

  magick separate_CMYK_0.gif -colorspace CMYK \
          separate_CMYK_0.gif -compose CopyRed   -composite \
          separate_CMYK_1.gif -compose CopyGreen -composite \
          separate_CMYK_2.gif -compose CopyBlue  -composite \
          separate_CMYK_3.gif -compose CopyBlack -composite \
          -colorspace RGB   rose_CMYK_combined_alt.gif
[IM Output]

明らかに元のバラのイメージではありません。

コピー後のチャンネルの内容を確認すると、黒チャンネルのコピーが完全に壊れていることがわかります。

  magick separate_CMYK_0.gif -colorspace CMYK \
          separate_CMYK_0.gif -compose CopyRed   -composite \
          separate_CMYK_1.gif -compose CopyGreen -composite \
          separate_CMYK_2.gif -compose CopyBlue  -composite \
          separate_CMYK_3.gif -compose CopyBlack -composite \
          -separate separate_again_%d.gif
[IM Output] ==> [IM Output] [IM Output] [IM Output] [IM Output]


半透明の丸い端点

端点付きの半透明のストロークは、そうでない場合に余分なオーバーレイを生成します。

    magick -size 100x60 xc:skyblue \
            -fill white -stroke '#0004' -strokewidth 16 \
            -draw "stroke-linecap round       path 'M 60,30 L -10,30'" \
            draw_endcap.gif
[IM Output]

中央の線は、この単一の線に対する白色の塗りつぶしです。

他の端点や丸いラインジョインについては、他の問題は見つかりませんでした。


円弧およびラインジョイン

stroke-linejoin round を有効にすると、「straight chord」が描画されるという「arc」または「ellipse」のバグがあるようです。

  magick -size 100x60 xc:skyblue -fill none -stroke white -strokewidth 5 \
          -draw "stroke-linejoin round ellipse 50,0 45,45 60,160" \
          draw_linejoin.png
[IM Output]

stroke-linejoin が与えられないと、囲むコード(正しく)が示されます。

これは、stroke-linecap を使用することを意図したときに私の間違いによって発生したことに注意してください。ただし、いずれの場合もこの現象は発生するはずはありません。

これはおそらく次のバグに関連している可能性があります...


ストロークが 3 以上のポリラインが問題を引き起こします

ストロークが 2 の場合、これは問題ありません。

  magick -size 80x60 xc:white -fill white -colorspace RGB \
          -draw "stroke black stroke-width 2 stroke-linejoin round \
                 polyline 14,53 30,5 71,14 51,41" \
          -colorspace sRGB draw_line2.png
[IM Output]

ただし、ストロークが 3 の場合、問題が発生します。

  magick -size 80x60 xc:white -fill white -colorspace RGB \
          -draw "stroke black stroke-width 3 stroke-linejoin round \
                 polyline 14,53 30,5 71,14 51,41" \
          -colorspace sRGB draw_line3.png
[IM Output]

ただし、stroke-linejoin round がない場合は、再び正しく機能します。

  magick -size 80x60 xc:white -fill white -colorspace RGB \
          -draw "stroke black stroke-width 3 \
                 polyline 14,53 30,5 71,14 51,41" \
          -colorspace sRGB draw_line3_2.png
[IM Output]

更新:IM v6.9.6-9 で修正されたようです


MVG:斜め線が太すぎます!

傾斜した対角線は、合理的な太さのようですね。
特に線形カラー空間に描いて使用する場合は...

  magick -size 100x60 xc:skyblue -colorspace RGB -fill white -stroke black \
          -draw "path 'M 10,10 L 90,10 L 90,50 Z'" \
          -colorspace sRGB draw_path_line_closed.gif
[IM Output]

ただし、破線として描画すると、線がはるかに太く見えます。

  magick -size 100x60 xc:skyblue -colorspace RGB -fill white -stroke black \
          -draw "stroke-dasharray 3 3 33 3 3 3 \
                 path 'M 10,10 L 90,10 L 90,50 Z'" \
          -colorspace sRGB draw_path_dash_closed.gif
[IM Output]


作成:2005 年 8 月 18 日
更新:2016 年 12 月 16 日
著者:アンソニー・ティーセン、<Anthony.Thyssen@gmail.com>
例を生成したもの:[バージョン画像]
URL:https://imagemagick.dokyumento.jp/Usage/bugs/testing/