Android图片合成

来源:互联网 发布:东莞小姐的体验知乎 编辑:程序博客网 时间:2024/04/28 08:57
  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.     }