android開發 兩張bitmap圖片合成一張圖片


場景:對android4.4解碼gif(解碼文章見前面一篇)后的圖片進行每幀處理,android4.3 解碼出來的每幀都很完整,但是到android4.4版本就不完整了,每幀都是在第一幀的基礎上把被改變的顯示出來了,所以需要再次合成每幀

如圖效果:

 

合成后:

 

 

代碼直接看:

/**
     * 將2張圖片合成
     * @param downBitmap  底部圖片
     * @param upBitmap  置頂的圖片
     * @return
     */
    public static Bitmap compoundBitmap(Bitmap downBitmap,Bitmap upBitmap)
    {
        Bitmap mBitmap = downBitmap.copy(Config.ARGB_8888, true);
        //如果遇到黑色,則顯示downBitmap里面的顏色值,如果不是則顯示upBitmap里面的顏色值
        //循環獲得bitmap所有像素點
        int mBitmapWidth = mBitmap.getWidth();          
        int mBitmapHeight = mBitmap.getHeight(); 
        //首先保證downBitmap和 upBitmap是一致的高寬大小
        if(mBitmapWidth==upBitmap.getWidth() && mBitmapHeight==upBitmap.getHeight())
        {
            for (int i = 0; i < mBitmapHeight; i++) {          
                for (int j = 0; j < mBitmapWidth; j++) {              
                    //獲得Bitmap 圖片中每一個點的color顏色值
                    //將需要填充的顏色值如果不是              
                    //在這說明一下 如果color 是全透明 或者全黑 返回值為 0              
                    //getPixel()不帶透明通道 getPixel32()才帶透明部分 所以全透明是0x00000000               
                    //而不透明黑色是0xFF000000 如果不計算透明部分就都是0了       
                    int color = upBitmap.getPixel(j, i);
                    //將顏色值存在一個數組中 方便后面修改             
                    if (color != Color.BLACK) {                  
                        mBitmap.setPixel(j, i, upBitmap.getPixel(j, i));  //將白色替換成透明色            
                    }  
                }  
            }
        }
//        downBitmap.recycle();
//        upBitmap.recycle();
        return mBitmap;
    }


需要結合上一篇文章看:《android開發 替換bitmap中的顏色值http://www.cnblogs.com/feijian/p/4501322.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM