Page 2 of 3

Re: separate modifies channel values!

Posted: 2013-09-23T10:46:11-07:00
by snibgo
"+channel" makes no difference for me:

D:\web\im>%IMG68610%convert rgb_no_alpha.png -channel a -separate +channel -format "%[fx:minima]" info:
0.999893

Re: separate modifies channel values!

Posted: 2013-09-23T10:49:41-07:00
by shadowhand
fmw42 wrote:On my Mac OSX IM 6.8.6.10 Q16 it works fine. But try adding +channel after the -separate and see if that makes a difference
It's ImageMagick on Linux that displays the bug, not OSX, but your suggestion did not work:

Code: Select all

# convert rgb-no-alpha.png -channel a -separate +channel -format "%[fx:minima]" info: 
0
Same (incorrect) result as before, still on 6.8.6-9.

Re: separate modifies channel values!

Posted: 2013-09-23T10:55:00-07:00
by fmw42
try -channel o, perhaps there was a swapped missed and you are getting the inverse

convert rgb-no-alpha.png -channel o -separate +channel -format "%[fx:minima]" info:

Re: separate modifies channel values!

Posted: 2013-09-23T11:29:37-07:00
by fmw42
what do you get from

convert rgb-no-alpha.png -channel a -separate -format "%[min]" info:

or from

convert rgb-no-alpha.png -format "%[fx:minima.a]" info:

Re: separate modifies channel values!

Posted: 2013-09-23T11:34:03-07:00
by shadowhand

Code: Select all

# convert rgb-no-alpha.png -channel a -separate -format "%[min]" info:
3.4e+38
# convert rgb-no-alpha.png -format "%[fx:minima.a]" info:
1.33333e+36
# convert rgb-no-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
1.33333e+36 -1.33333e+36
And here's output for an image with an alpha channel:

Code: Select all

# convert rgb-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
0 1
# convert rgb-alpha-partial.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
0 0.498039
This last result is really interesting, because the image in question should have a minima.a of 0.49 and a maxima of 1, as the image in question is only partially transparent. There isn't a single pixel that is fully transparent, so the minima cannot possibly be zero.

Re: separate modifies channel values!

Posted: 2013-09-23T11:40:14-07:00
by shadowhand
It seems that using the "o" channel (whatever that is) seems to work better:

Code: Select all

# convert rgb-alpha-partial.png -channel o -separate +channel -format "%[fx:minima] %[fx:maxima]" info:
0.501961 1
This is the correct result for this partially transparent image. But it doesn't work properly for an image with no alpha channel:

Code: Select all

# convert rgb-no-alpha.png -channel o -separate +channel -format "%[fx:minima] %[fx:maxima]" info: 
0 1

Re: separate modifies channel values!

Posted: 2013-09-23T12:15:04-07:00
by fmw42
You must be on a Q32 compile if you get values in scientific notation e+38.

What is your exact IM version and compile Q level on both your systems?

Re: separate modifies channel values!

Posted: 2013-09-23T12:18:50-07:00
by shadowhand
On Mac OS X 10.8.5:

Code: Select all

% convert --version
Version: ImageMagick 6.8.6-3 2013-07-06 Q16 http://www.imagemagick.org
On Debian Linux (Wheezy):

Code: Select all

# convert --version
Version: ImageMagick 6.8.6-9 2013-09-13 Q8 http://www.imagemagick.org

Re: separate modifies channel values!

Posted: 2013-09-23T12:22:48-07:00
by fmw42
# convert rgb-no-alpha.png -channel a -separate -format "%[min]" info:
3.4e+38
# convert rgb-no-alpha.png -format "%[fx:minima.a]" info:
1.33333e+36
# convert rgb-no-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
1.33333e+36 -1.33333e+36
These values make no sense for either Q16 or Q8. Looks like your system may be corrupted or has some bad bugs in that version. Seems like no one else is getting that on current versions of IM.

Have you tried re-installing IM?

Have you checked to see that you do not have multiple versions of IM on your systems? Typically /usr/bin or /usr/local/bin? Perhaps you are using an old version of IM different from what you report or there are conflicts.

try

type -a convert


or

/usr/bin/convert -version

and

/usr/local/bin/convert -version

Re: separate modifies channel values!

Posted: 2013-09-23T12:26:43-07:00
by fmw42
convert -version

should be giving more information, such as whether OpenMP is enabled, whether HDRI is enable and all your delegates.


convert -version
Version: ImageMagick 6.8.6-10 2013-09-23 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC
Delegates: bzlib fftw fontconfig freetype gslib jbig jng jp2 jpeg lcms lqr ltdl lzma openexr png ps png tiff x xml zlib

Re: separate modifies channel values!

Posted: 2013-09-23T12:40:44-07:00
by shadowhand
fmw42 wrote:
# convert rgb-no-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
1.33333e+36 -1.33333e+36
These values make no sense for either Q16 or Q8. Looks like your system may be corrupted or has some bad bugs in that version.
I get this same result on both Mac and Linux. There is very little chance my system is corrupted, as we do lots of complex ImageMagick operations and this is the only one with issues.
Have you tried re-installing IM?
I can, but this seems like a red herring. We have the same version/package of ImageMagick installed on tens, if not hundreds, of VMs.
Have you checked to see that you do not have multiple versions of IM on your systems?

Code: Select all

mac % type -a convert
convert is /usr/local/bin/convert

linux # type -a convert
convert is /usr/bin/convert
So no, there are no duplicates. Longer version info:

Code: Select all

mac % convert -version
Version: ImageMagick 6.8.6-3 2013-07-06 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib freetype jng jpeg png xml zlib

linux # convert -version
Version: ImageMagick 6.8.6-9 2013-09-13 Q8 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib fontconfig freetype jbig jng jp2 jpeg lcms ltdl lzma png png tiff xml zlib

Re: separate modifies channel values!

Posted: 2013-09-23T12:55:42-07:00
by snibgo
Shadowhand's results for rgb-no-alpha.png, eg 1.33333e+36, remind me of results from my C-language programs when I have forgotten to initialize a variable.

Re: separate modifies channel values!

Posted: 2013-09-23T14:24:34-07:00
by fmw42
On IM 6.8.6.9 and 6.8.6.10 Q16 Mac OSX I get


convert rgb-no-alpha.png -channel a -separate -format "%[fx:minima]" info:
1

convert rgb-no-alpha.png -channel a -separate -format "%[fx:maxima]" info:
1


convert rgb-no-alpha.png -channel a -separate -format "%[fx:minima] %[fx:maxima]" info:
1 1


But using channel indices does give bad results

convert rgb-no-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]" info:
5.18807e+33 -5.18807e+33

So I would have to say there is a bug in this respect.

Re: separate modifies channel values!

Posted: 2013-09-23T14:41:45-07:00
by shadowhand
Looks like it has been fixed by something else in some later version:

Code: Select all

mac % % convert -version                                                                                                                                                          1 ↵
Version: ImageMagick 6.8.6-10 2013-09-23 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC
Delegates: bzlib freetype jng jpeg ltdl png png xml zlib

mac % for file in alpha false-alpha no-alpha alpha-partial; do; echo $file; convert "rgb-$file.png" -channel a -separate -format "%[fx:minima] %[fx:maxima]\n" info:; done         
alpha
0 1
false-alpha
1 1
no-alpha
1 1
alpha-partial
0.501961 1
Even the false-alpha file (opaque PNG with alpha channel forced on) registers correctly here. I'm not sure exactly what version fixed it, but 6.8.6-10 is certainly fixed.

Re: separate modifies channel values!

Posted: 2013-09-23T16:40:12-07:00
by fmw42
I still get


convert rgb-no-alpha.png -format "%[fx:minima.a] %[fx:maxima.a]\n" info:
5.18807e+33 -5.18807e+33

convert -version
Version: ImageMagick 6.8.6-10 2013-09-23 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC
Delegates: bzlib fftw fontconfig freetype gslib jbig jng jp2 jpeg lcms lqr ltdl lzma openexr png ps png tiff x xml zlib

Mac OSX Snow Leopard


It works fine as I had above with -channel a -separate same as you (see above). But it does not work with %[fx:minima.a] selecting the channel that way.


It seems to work for r,g,b but not a

convert rgb-no-alpha.png -format "%[fx:maxima.r] %[fx:maxima.g] %[fx:maxima.b] %[fx:maxima.a]\n" info:
1 1 1 -5.18807e+33