91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android實現圖片疊加功能

發布時間:2020-09-24 21:45:32 來源:腳本之家 閱讀:199 作者:南湖大道茶山劉 欄目:移動開發

前幾天工作碰到這樣一個需求,將二維碼與一張海報疊加,并將合成后的海報分享到微信。由于經驗不足,在實現功能的過程中,碰到了這樣或那樣的問題,我就來分享一下我碰到的坑。

一.圖片疊加的處理

處理思路是在一張新建畫布上分別將兩張圖片繪制出來

        1.首先獲取需要兩張圖片,并轉成Bitmap類型

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

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

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

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

        2.創建一張大小和背景圖一致的位圖

intbgWidth=bg.getWidth();

intbgHeight=bg.getHeight();

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

/*這里不詳細解釋RGB_565和RGB_8888,RGB_6666的區別,我是因為后來分享到微信的過程中,發現圖片過大,就盡量讓圖片更小,值得一提的是,我有試過RGB_6666,發現getConfig()圖片的參數并沒有變化,看了源碼才知道,即使是選擇RGB_6666,也會被轉成RGB_8888,應該是畫質太慘目忍睹了,Google便放棄了RGB_6666了*/

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

         3.新建畫布,并畫出背景圖和前景圖

Canvascv=newCanvas(newbmp);

//drawbginto

//在0,0坐標開始畫入bg

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

//drawfginto

//開始畫入fg,可以從任意位置畫入,具體位置自己計算

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

二.圖片壓縮處理

在使用微信sdk分享圖片的過程中,發現圖片過大會導致微信拉起失敗,處理思路是將縮放至原來的一半,圖片占用內存自然就減少了,是不是簡單粗暴呀

Matrixmatrix=newMatrix();

matrix.setScale(0.5f,0.5f);

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

newbmp.getHeight(),matrix,true);

三.最終效果

Android實現圖片疊加功能

以上所述是小編給大家介紹了Android圖片疊加功能代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌县| 靖宇县| 绥棱县| 石嘴山市| 英山县| 饶阳县| 西乌珠穆沁旗| 民乐县| 罗定市| 敖汉旗| 多伦县| 二连浩特市| 鸡西市| 准格尔旗| 奈曼旗| 长寿区| 和平县| 霍林郭勒市| 白银市| 健康| 梅州市| 建德市| 武隆县| 屯门区| 六安市| 蓝田县| 社会| 六枝特区| 张家口市| 枣庄市| 宜州市| 隆子县| 桑日县| 西丰县| 阜南县| 龙里县| 衡山县| 阿坝县| 玛纳斯县| 乾安县| 辛集市|