zoukankan      html  css  js  c++  java
  • android整合两个bitmap

    有时候会遇到这样的需求,将两个bitmap对象整合并保存为一张图片,代码如下:

    private Bitmap toConformBitmap(Bitmap background, Bitmap foreground) {
             if( background == null ) {   
                return null;   
             }   
       
             int bgWidth = background.getWidth();   
             int bgHeight = background.getHeight();   
             //int fgWidth = foreground.getWidth();   
             //int fgHeight = foreground.getHeight();   
             //create the new blank bitmap 创建一个新的和SRC长度宽度一样的位图    
             Bitmap newbmp = Bitmap.createBitmap(bgWidth, bgHeight, Config.ARGB_8888);  
             Canvas cv = new Canvas(newbmp);   
             //draw bg into   
             cv.drawBitmap(background, 0, 0, null);//在 0,0坐标开始画入bg   
             //draw fg into   
             cv.drawBitmap(foreground, 0, 0, null);//在 0,0坐标开始画入fg ,可以从任意位置画入
             //save all clip   
             cv.save(Canvas.ALL_SAVE_FLAG);//保存   
             //store   
             cv.restore();//存储   
             return newbmp;   
        }

     此方法分别传入两个bitmap对象,一个为底图(背景图background),另一个则位于其上面(前景图foreground),若上面的bitmap是不透明的话,就会完全遮住下面的bitmap,那么保存为图片后,就只能看到位于上面的bitmap的信息,图片的大小为两个bitmap叠加的大小。
    保存bitmap为一张图片:

    private String saveBitmap(Bitmap bitmap) {
            String  imagePath = getApplication().getFilesDir().getAbsolutePath() + "/temp.png";
            
            File file = new File(imagePath);
            if(file.exists()) {
                file.delete();
            }
            try{
                FileOutputStream out = new FileOutputStream(file);
                if(bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)){
                    out.flush();
                    out.close();
                }     
            } catch (Exception e) { 
                Toast.makeText(this, "保存失败, 1).show();
                e.printStackTrace();
            }
            return imagePath;
        }
  • 相关阅读:
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    2019软件工程实践——第四次作业
    2019软件工程实践——第三次作业
    2019软件工程实践——第二次作业
    2019软件工程实践——第一次作业
    博客园 自定义背景图片(包括动图)
    软件工程 实验一 GIT代码版本管理
    WordCounter项目(基于javase)
  • 原文地址:https://www.cnblogs.com/622698abc/p/3608074.html
Copyright © 2011-2022 走看看