v6.8.9-6 Q32 HDRI compiled under Cygwin on Windows 8.1.
I confirm that "-level" clips but "+level" doesn't. For example:
Code: Select all
F:\web\im>%IMDEV%convert -size 1x5 gradient: -level 0,50% txt:
# ImageMagick pixel enumeration: 1,5,4294967295,srgb
0,0: (100%,100%,100%) #FFFFFFFFFFFFFFFFFFFFFFFF white
0,1: (100%,100%,100%) #FFFFFFFFFFFFFFFFFFFFFFFF white
0,2: (100%,100%,100%) #FFFFFFFFFFFFFFFFFFFFFFFF white
0,3: (50%,50%,50%) #800000008000000080000000 srgb(50%,50%,50%)
0,4: (0%,0%,0%) #000000000000000000000000 black
F:\web\im>%IMDEV%convert -size 1x5 gradient: +level 0,200% txt:
# ImageMagick pixel enumeration: 1,5,4294967295,srgb
0,0: (200%,200%,200%) #FFFFFFFFFFFFFFFFFFFFFFFF srgb(200%,200%,200%)
0,1: (150%,150%,150%) #FFFFFFFFFFFFFFFFFFFFFFFF srgb(150%,150%,150%)
0,2: (100%,100%,100%) #FFFFFFFFFFFFFFFFFFFFFFFF white
0,3: (50%,50%,50%) #800000008000000080000000 srgb(50%,50%,50%)
0,4: (0%,0%,0%) #000000000000000000000000 black
I can't find what code causes this clipping. I suggest it is a bug (rather than a feature).
EDIT: For any "-level", there is a "+level" that gives the same result aside from clipping. Hence a workaround is to use the equivalent "+level".