- /**
- * 图像的合成,可以通过在同一个Canvas中绘制两张图片。
- * 只是在绘制第二章图片的时候,需要给Paint指定一个变幻模式TransferMode。
- * 在Android中有一个XFermode所有的变幻模式都是这个类的子类
- * 我们需要用到它的一个子类PorterDuffXfermode,关于这个类,其中用到PorterDuff类
- * 这个类很简单,就包含一个Enum是Mode,其中定义了一组规则,这组规则就是如何将
- * 一张图像和另一种图像进行合成
- * 关于图像合成有四种模式,LIGHTEN,DRAKEN,MULTIPLY,SCREEN
- */
- private Bitmap compositeImages(){
- Bitmap bmp = null;
- //下面这个Bitmap中创建的函数就可以创建一个空的Bitmap
- bmp = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
- Paint paint = new Paint();
- Canvas canvas = new Canvas(bmp);
- //首先绘制第一张图片,很简单,就是和方法中getDstImage一样
- canvas.drawBitmap(srcBitmap, 0, 0, paint);
- //在绘制第二张图片的时候,我们需要指定一个Xfermode
- //这里采用Multiply模式,这个模式是将两张图片的对应的点的像素相乘
- //,再除以255,然后以新的像素来重新绘制显示合成后的图像
- paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
- canvas.drawBitmap(dstBitmap, 0, 0, paint);
- return bmp;
- }
Android图片合成
最新推荐文章于 2023-06-06 14:56:25 发布