Bitmap的一些操作

2021-06-22 23:24:35 字數 3027 閱讀 6231

1、擷取 bitmap 的部分區域

mbitmap = bitmap.createbitmap(bmp, 100, 100, 120, 120); 

這句**從 bmp 的 (100,100) 處擷取 120*120 畫素區域放到新的 bitmap 中。

2、縮放乙個 bitmap

可以用 bitmap.createscaledbitmap() 方 法根據給定的 bitmap 建立 乙個新的,縮放後的 bitmap 。

bitmap mbitmap = bitmap.createscaledbitmap(bmp, mscreenwidth, mscreenheight, true); 

其中 mscreenwidth 和 mscreenheight 是螢幕的寬度和高度,這裡就將 bmp 拉伸到整個螢幕。

每次 createbitmap ,都會分配新的記憶體,帶來資源的 消耗,所以用 bitmap 的 createbitmap 雖然簡單方便,但是不是最優方 法。介紹乙個比較好點的方法,不用建立新的 bitmap ,用 canvas 在畫的時候直接縮放或者剪下。

canvas.drawbitmap(mbitmap, null, new rect(0, 0, 200, 200), null); 

這裡的 rect 物件表示乙個矩形區域,從 (0,0) 到 (200,200) 之間的矩形區域。這段**將把 mbitmap 縮放並繪製到螢幕上的(0,0) 到 (200,200) 之間的區域。這個方法還有第二個引數我給的是 null ,其實這個引數也是個 rect 物件,表示源 rect 。把的某個區域拿出來畫到螢幕的指定區域,

canvas.drawbitmap(mbitmap, new rect(100, 100, 300, 300), new rect(100, 100, 200, 200), null); 

這裡將 mbitmap 的 (100,100) 到 (300,300) 區域拿出來,自動縮放並畫到螢幕的 (100,100) 到 (200,200) 區域。

3、平均分割方法,將大圖平均分割為n行n列,方便使用者使用

/*** 

* 分割 

* * @param g 

* :畫布

* @param paint 

* :畫筆

* @param imgbit 

* :* @param x 

* :x軸起點座標

* @param y 

* :y軸起點座標

* @param w 

* :單一的寬度

* @param h 

* :單一的高度

* @param line 

* :第幾列

* @param row 

* :第幾行

*/public final void cuteimage(canvas g, paint paint, bitmap imgbit, int x, 

int y, int w, int h, int line, int row)

4、縮放,對當前進行縮放處理

/*** 

* 的縮放方法 

** @param bgimage 

* :源資源

* @param newwidth 

* :縮放後寬度 

* @param newheight

* :縮放後高度 

* @return

*/public bitmap zoomimage(bitmap bgimage, int newwidth, int newheight)

5、繪製帶有邊框的文字,一般在遊戲中起文字的美化作用

/***

* 繪製帶有邊框的文字 

* * @param strmsg 

* :繪製內容 

* @param g 

* :畫布

* @param paint 

* :畫筆

* @param setx 

* ::x軸起始座標

* @param sety 

* :y軸的起始座標

* @param fg 

* :前景色

* @param bg 

* :背景色

*/public void drawtext(string strmsg, canvas g, paint paint, int setx, 

int sety, int fg, int bg)

6、android 透明度處理**

/** 

* 透明度處理 

* * @param sourceimg 

* 原始 

* @param number 

* 透明度 

* @return 

*/ public static bitmap setalpha(bitmap sourceimg, int number)  

sourceimg = bitmap.createbitmap(argb, sourceimg.getwidth(), sourceimg.getheight(), config.argb_8888);

return sourceimg; }

7、翻轉

resources res = this.getcontext().getresources(); 

img = bitmapfactory.decoderesource(res, r.drawable.slogo); 

matrix matrix = new matrix(); 

matrix.postrotate(90); /*翻轉90度*/ 

int width = img.getwidth(); 

int height = img.getheight(); 

r_img = bitmap.createbitmap(img, 0, 0, width, height, matrix, true);

出處:

Bitmap的一些操作

param param bitmap 物件 param w 要縮放的寬度 param h 要縮放的高度 return newbmp 新 bitmap物件 public static bitmap zoombitmap bitmap bitmap,int w,int h 以第乙個圖為準 優化演算法 1...

Android的Bitmap的一些知識點

1,decoderesource 與decodefile 的區別 尺寸的處理方法 decodefile 用於讀取sd卡的上面的,得到的是原始的尺寸。decoderesource 用於讀取res,raw等資源,得到的是的原始尺寸x縮放係數。而縮放係數的計算依賴於螢幕的密度。手動設定縮放係數 bitma...

ubuntu的一些操作

1.ubuntu,windows啟動順序修改 圖形化方法 sudo apt get install startupmanager,然後終端startupmanager,圖形化修改啟動順序,其它 2.ubuntu遠端桌面 window xp訪問ubuntu 需在ubuntu設定允許遠端訪問,可以加密訪...