溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Android實(shí)現(xiàn)圖片疊加功能

發(fā)布時(shí)間:2020-09-24 21:45:32 來(lái)源:腳本之家 閱讀:195 作者:南湖大道茶山劉 欄目:移動(dòng)開(kāi)發(fā)

前幾天工作碰到這樣一個(gè)需求,將二維碼與一張海報(bào)疊加,并將合成后的海報(bào)分享到微信。由于經(jīng)驗(yàn)不足,在實(shí)現(xiàn)功能的過(guò)程中,碰到了這樣或那樣的問(wèn)題,我就來(lái)分享一下我碰到的坑。

一.圖片疊加的處理

處理思路是在一張新建畫(huà)布上分別將兩張圖片繪制出來(lái)

        1.首先獲取需要兩張圖片,并轉(zhuǎn)成Bitmap類(lèi)型

Bitmapbg = ((BitmapDrawable) getResources().getDrawable(

 R.drawable.background)).getBitmap();

Bitmapfg = ((BitmapDrawable) getResources().getDrawable(

 R.drawable.foreground)).getBitmap();

        2.創(chuàng)建一張大小和背景圖一致的位圖

intbgWidth=bg.getWidth();

intbgHeight=bg.getHeight();

intfgWidth=fg.getWidth(); //前景圖寬度,用于后面計(jì)算前景圖的繪制坐標(biāo)

/*這里不詳細(xì)解釋RGB_565和RGB_8888,RGB_6666的區(qū)別,我是因?yàn)楹髞?lái)分享到微信的過(guò)程中,發(fā)現(xiàn)圖片過(guò)大,就盡量讓圖片更小,值得一提的是,我有試過(guò)RGB_6666,發(fā)現(xiàn)getConfig()圖片的參數(shù)并沒(méi)有變化,看了源碼才知道,即使是選擇RGB_6666,也會(huì)被轉(zhuǎn)成RGB_8888,應(yīng)該是畫(huà)質(zhì)太慘目忍睹了,Google便放棄了RGB_6666了*/

Bitmapnewbmp=Bitmap.createBitmap(bgWidth,bgHeight,Bitmap.Config.RGB_565);

         3.新建畫(huà)布,并畫(huà)出背景圖和前景圖

Canvascv=newCanvas(newbmp);

//drawbginto

//在0,0坐標(biāo)開(kāi)始畫(huà)入bg

cv.drawBitmap(bg,0,0,null);

//drawfginto

//開(kāi)始畫(huà)入fg,可以從任意位置畫(huà)入,具體位置自己計(jì)算

cv.drawBitmap(fg,(bgWidth-fgWidth)/2,bgHeight/4*3-500,null);

二.圖片壓縮處理

在使用微信sdk分享圖片的過(guò)程中,發(fā)現(xiàn)圖片過(guò)大會(huì)導(dǎo)致微信拉起失敗,處理思路是將縮放至原來(lái)的一半,圖片占用內(nèi)存自然就減少了,是不是簡(jiǎn)單粗暴呀

Matrixmatrix=newMatrix();

matrix.setScale(0.5f,0.5f);

Bitmap compbmp=Bitmap.createBitmap(newbmp,0,0,newbmp.getWidth(),

newbmp.getHeight(),matrix,true);

三.最終效果

Android實(shí)現(xiàn)圖片疊加功能

以上所述是小編給大家介紹了Android圖片疊加功能代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI