snibgo, I am not getting what you imply. I get a full blue circle and a half red circle. It should be two half circles, should it not?
Code: Select all
im6925 convert -size 60x60 xc:none -fill red -draw "circle 35,21 35,3" m_src.png
im6925 convert -size 60x60 xc:none -fill blue -draw "circle 21,39 24,57" m_bgnd.png
im6925 convert -size 60x60 xc: -draw "polygon 0,59 59,0, 0,0" m_mask.png
im6925 convert m_bgnd.png m_src.png m_mask.png -composite m_over_masked6925.png
Is this what you see?
For reference:
IM6944
Code: Select all
convert -size 60x60 xc:none -fill red -draw "circle 35,21 35,3" m_src.png
convert -size 60x60 xc:none -fill blue -draw "circle 21,39 24,57" m_bgnd.png
convert -size 60x60 xc: -draw "polygon 0,59 59,0, 0,0" m_mask.png
convert m_bgnd.png m_src.png m_mask.png -compose over -composite m_over_masked_6944.png
IM7016
Code: Select all
im7 magick -size 60x60 xc:none -fill red -draw "circle 35,21 35,3" m_src.png
im7 magick -size 60x60 xc:none -fill blue -draw "circle 21,39 24,57" m_bgnd.png
im7 magick -size 60x60 xc: -draw "polygon 0,59 59,0, 0,0" m_mask.png
im7 magick m_bgnd.png m_src.png m_mask.png -composite m_over_masked_7016.png
So to get two half circle, my code from above was:
Code: Select all
convert m_bgnd.png m_src.png \( m_mask.png -write mpr:mask +delete \) \
\( -clone 0 -alpha extract mpr:mask -compose multiply -composite \
-clone 0 +swap -alpha off -compose over -compose copy_opacity -composite +write show: \) \
\( -clone 1 -alpha extract \( mpr:mask -negate \) -compose multiply -composite \
-clone 1 +swap -alpha off -compose over -compose copy_opacity -composite +write show: \) \
-delete 0,1 -background none -compose over -flatten \
m_over_masked.png
So clearly there is a bug, at minimum, in the IM 7 processing, since it does not even match that of IM 6.