• android开发 图片合成


    private static Bitmap compositeImages(Bitmap srcBitmap,Bitmap dstBitmap){  
              
            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.SRC_OVER));  
            canvas.drawBitmap(dstBitmap, 0, 0, paint);  
            return bmp;  
        }  

    关于 PorterDuff.Mode.SRC_OVER 的参数说明:

    就是在图片bitmap1上面绘制图片mask时 处理两者相交时候显示的问题 

    canvas原有的图片 可以理解为背景 就是dst 
    新画上去的图片 可以理解为前景 就是src 


    Mode的值 如下图 

     

  • 相关阅读:
    Linux下用wget下载百度网盘资源
    android系统编译记录
    ubuntu 安装JDK & eclipse
    Linux安全攻略-僵尸进程
    smack user登陆
    smack 创建账户
    我的第一个开源App(彩票开奖查询)
    REST简介
    HTTP 状态码
    测试 ScribeFire Blog Editor
  • 原文地址:https://www.cnblogs.com/feijian/p/4742012.html
Copyright © 2020-2023  润新知