Is there any way to blend two Images?, ex:
Image a; Image b; Image c = a.blend (b, alpha);
(It is not in a Component)
Is there any way to blend two Images?, ex:
Image a; Image b; Image c = a.blend (b, alpha);
(It is not in a Component)
Ok i've found how to do it:
Image outputImage = (load or create empty) Image a = loadimageA Image b = loadImageB ScopedPointer <Graphics> g = new Graphics (outputImage); g->drawImageAt (a, 0, 0); g->drawImageAt (b, 0,0);
you're just writing one image over the other, so I think it's an 'overlay'? Which makes sense if the second image has transparent sections, otherwise you will only see the second image.
Yes, the second image has transparent background, to adjust the alpha channel I add .multiplyAllAlphas() the the second image
Image outputImage = (load or create empty) Image a = loadimageA Image b = loadImageB ScopedPointer <Graphics> g = new Graphics (outputImage); g->drawImageAt (a, 0, 0); g->drawImageAt (b.multiplyAllAlphas(0.6f) , 0,0);
Just for the benefit of any beginners who read this thread, here's a better example of how to write that:
Image createCompositedImage (Image background, Image foreground, float alpha) { Image result = background.createCopy(); Graphics g (result); g.setOpacity (alpha); g.drawImage (foreground, 0, 0); // obviously this ignores the fact that they may be different sizes return result; }
:)
What blend modes are supported and how do you set the blend mode?
Only normal compositing is supported.