I tried composing the same 2 images with 12 different operators, including Multiply, Plus, Overlay, Screen, Over, and Difference, and got the exact same result.
One image was an image with values across the spectrum, the other a solid color, so the outputs should have varied significantly.
Is it possible the way this ultimately emits its commands for Composite is losing the CompositeOperator in the process and always using one? It seems like it's always using Over.
I've attached the original image (Z2cSvin3x0u6x3kw5CFtow.jpg) and all the outputs, each having the original filename then a dash and the filter applied, all in a single zip file. You'll notice they're all exactly identical.
The code in use is very abstracted so a simple copy-paste of it would be useless but it:
1) Loops over an array of operators (the ones you see in the output filenames)
2) Loads the image and dumps it into a new MagickImage
3) Creates a second MagickImage with the solid color and the loaded image's dimensions
4) Fires .Composite() with the solid color image and operator as args
5) Writes out the result.
Comments: Sorry about that, stupid mistake buried in my code. Sorry to make you waste time on the repro.
One image was an image with values across the spectrum, the other a solid color, so the outputs should have varied significantly.
Is it possible the way this ultimately emits its commands for Composite is losing the CompositeOperator in the process and always using one? It seems like it's always using Over.
I've attached the original image (Z2cSvin3x0u6x3kw5CFtow.jpg) and all the outputs, each having the original filename then a dash and the filter applied, all in a single zip file. You'll notice they're all exactly identical.
The code in use is very abstracted so a simple copy-paste of it would be useless but it:
1) Loops over an array of operators (the ones you see in the output filenames)
2) Loads the image and dumps it into a new MagickImage
3) Creates a second MagickImage with the solid color and the loaded image's dimensions
4) Fires .Composite() with the solid color image and operator as args
5) Writes out the result.
Comments: Sorry about that, stupid mistake buried in my code. Sorry to make you waste time on the repro.