l33t
l33t

Reputation: 19937

How to draw on bitmap using another bitmap as mask?

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?

enter image description here

+

enter image description here

+ blue color =

enter image description here

Upvotes: 6

Views: 6252

Answers (2)

Billy Lazzaro
Billy Lazzaro

Reputation: 496

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!

Upvotes: 0

l33t
l33t

Reputation: 19937

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);

Upvotes: 9

Related Questions