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: No problem, next time just create the smallest possible example and you will figure it out before you post it here. Or you might find a bug ;)
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: No problem, next time just create the smallest possible example and you will figure it out before you post it here. Or you might find a bug ;)