Android图片合成

  1.     /**  
  2.      * 图像的合成,可以通过在同一个Canvas中绘制两张图片。  
  3.      * 只是在绘制第二章图片的时候,需要给Paint指定一个变幻模式TransferMode。  
  4.      * 在Android中有一个XFermode所有的变幻模式都是这个类的子类  
  5.      * 我们需要用到它的一个子类PorterDuffXfermode,关于这个类,其中用到PorterDuff类  
  6.      * 这个类很简单,就包含一个Enum是Mode,其中定义了一组规则,这组规则就是如何将  
  7.      * 一张图像和另一种图像进行合成  
  8.      * 关于图像合成有四种模式,LIGHTEN,DRAKEN,MULTIPLY,SCREEN  
  9.      */  
  10.     private Bitmap compositeImages(){   
  11.            
  12.         Bitmap bmp = null;   
  13.         //下面这个Bitmap中创建的函数就可以创建一个空的Bitmap   
  14.         bmp = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());   
  15.         Paint paint = new Paint();   
  16.         Canvas canvas = new Canvas(bmp);   
  17.         //首先绘制第一张图片,很简单,就是和方法中getDstImage一样   
  18.         canvas.drawBitmap(srcBitmap, 00, paint);         
  19.            
  20.         //在绘制第二张图片的时候,我们需要指定一个Xfermode   
  21.         //这里采用Multiply模式,这个模式是将两张图片的对应的点的像素相乘   
  22.         //,再除以255,然后以新的像素来重新绘制显示合成后的图像   
  23.         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));   
  24.         canvas.drawBitmap(dstBitmap, 00, paint);   
  25.            
  26.         return bmp;   
  27.     }   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值