I want to draw on a bitmap using another bitmap as mask. The mask is a black bitmap with a transparent object in it. I want this transparent part to be filled with an arbitrary color and added to my original image. How can this be done?
How to draw on bitmap using another bitmap as mask?
Asked Answered
do you have any choice/possibility to change the masks? e.g. using white object on transparent background? then you could use some kind of multiply between mask and blue color –
Imhoff
in either case, this guide could help you to do what you'd like kevindion.com/2011/01/android-bitmap-blending-color-channels –
Imhoff
Yes, I believe I could change the masks. The link provided is great! Thanks! –
Lundt
I had to change the masks as described by @Christian. Then, the wanted result could easily be produced:
canvas.drawRect(rect, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawBitmap(mask, 0.0f, 0.0f, paint);
If you're setting this to an ImageView, a quick way is to set the background to the gradient drawable, and a blue 'T' with a transparent background as the ImageView's source. Not fancy, but fast and simple!
© 2022 - 2024 — McMap. All rights reserved.