대상이미지중 마스크 이미지의 투명하지 않은 영역만을 보여줌



ImageView img = photoContents;


Canvas canvas = new Canvas();

Bitmap mainImage = BitmapFactory.decodeFile(imageFile

.getAbsolutePath());

Bitmap tmpMask = BitmapFactory.decodeResource(context.getResources(),

R.drawable.mask);

Bitmap mask = Bitmap.createScaledBitmap(tmpMask, mainImage.getWidth(), mainImage.getHeight(), true);

tmpMask.recycle();

tmpMask = null;

Bitmap result = Bitmap.createBitmap(mainImage.getWidth(),

mainImage.getHeight(), Bitmap.Config.ARGB_8888);


canvas.setBitmap(result);

Paint paint = new Paint();

paint.setFilterBitmap(false);


canvas.drawBitmap(mainImage, 0, 0, paint);

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));  

// DST_IN,  DST_OUT(mask reverse)

canvas.drawBitmap(mask, 0, 0, paint);

paint.setXfermode(null);


img.setImageBitmap(result);

img.invalidate();



< ref > 


Posted by tenn
,