### Image Composition Methods Fixed and expanded

Posted:

**2009-08-09T18:04:06-07:00**Recently (last few weeks) I re-coded much of Composite math functions, so as to ensure they follow the SVG (and other) specifications, and use 'Over' alpha blending (except for 'Plus', and related operators, which don't use 'Over' blending). I looked briefly at allowing the use of channel handling for math functions, but concluded that all it would do is slow down the compose methods.

As such I decided to continue to ignore the use of 'channel' in compositeImage()

During that re-coding I also added some new compose methods, LinearDodge (like 'Plus' but with 'Over' blending instead of 'Plus' blending) LinearBurn (the photoshop 'Minus' function, you negate the image to subtract, then LinearBurn it) VividLight, PinLight, PegtopLight.

I also finally fixed the broken compose methods SoftLight, ColorBurn.

Also added was a special DIY compose method 'Mathematics', as proposed by Fred Wienhaus.

http://www.imagemagick.org/Usage/compose/#mathematics

All the math composite methods are looked at on IM Examples, Image Composition, Mathematical Compose Methods...

http://www.imagemagick.org/Usage/compose/#math

Actual examples of using the various 'Light' methods are needed though.

As such I decided to continue to ignore the use of 'channel' in compositeImage()

During that re-coding I also added some new compose methods, LinearDodge (like 'Plus' but with 'Over' blending instead of 'Plus' blending) LinearBurn (the photoshop 'Minus' function, you negate the image to subtract, then LinearBurn it) VividLight, PinLight, PegtopLight.

I also finally fixed the broken compose methods SoftLight, ColorBurn.

Also added was a special DIY compose method 'Mathematics', as proposed by Fred Wienhaus.

http://www.imagemagick.org/Usage/compose/#mathematics

All the math composite methods are looked at on IM Examples, Image Composition, Mathematical Compose Methods...

http://www.imagemagick.org/Usage/compose/#math

Actual examples of using the various 'Light' methods are needed though.