Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android圖像編輯和處理(二)

android圖像編輯和處理(二)

編輯:關於Android編程

1.輸入矩陣:

Matrix矩陣類,當現有位圖對象上進行繪制或從另一個位圖對象創建某個位圖時,可以使用該類。

Matrix矩陣類的每個數字都應用於圖像上每個點的3個坐標(x,y或z)之一:

如:1 , 0 , 0,

0, 1, 0,

0, 0, 1

第一行:指定x坐標:x=1x+0y+0z;

第二行:指定y坐標:y=0x+1y+oz;

第三行:指定z坐標:z=0x+0y+1z;

 

                               Matrix matrix=new Matrix();
				matrix.setValues(new float[]{
						1,0.5f,0,
						0,1,0,
						0,0,1
				});
				canvas.drawBitmap(bmp, matrix, paint);
				copyPicture.setImageBitmap(alteredBitmap);
在需要增加結果位圖大小是可以設置:

 

alteredBitmap = Bitmap.createBitmap(bmp.getWidth()*2, bmp.getWidth(), bmp.getConfig());

2.Matrix類的方法

(1)旋轉:

Matrix matrix=new Matrix();

//matrix.setRotate(15);/*旋轉的角度,圍繞默認點(0,0),正數順時針旋轉,負數逆時針旋轉,默認點是圖像左上角*/
matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋轉
canvas.drawBitmap(bmp, matrix, paint);

(2)縮放:

matrix.setScale(1.5f, 1);//縮放,第一個參數x軸的縮放比例,第二個參數y軸的縮放比例。

(3)平移:

matrix.setTranslate(1.5f, -10);//平移,第一個參數x軸的移動數量,第二個參數y軸的移動數量。

(4)鏡像:

matrix.setScale(-1, 1);
matrix.postTranslate(bmp.getWidth(), 0);//向右移動

(5)翻轉:

matrix.setScale(1,-1);
matrix.postTranslate(0, bmp.getHeight());//向下移動

(6)繪制替代圖像:

以前所使用的方法的缺點是圖像會被截斷,因為沒有計算轉換後的結果大小。解決方法:當初次創建位圖對象時,應用Matrix對象而不是繪制到一個空的位圖對象中。

通過這種方式無需再獲得Canvas和Paint對象。缺點是不能再更改位圖對象。

在Bitmap類中存在一個靜態方法createBitmap.

Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);//參數不再說明。

示例:

 

				Matrix matrix=new Matrix();
				matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋轉
				Bitmap alteredBitmap=Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);
                                copyPicture.setImageBitmap(alteredBitmap);


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved