正文

圖像處理(1)

Android多媒體開發(fā)高級編程 作者:(美)艾佛瑞


類似于在Canvas對象上繪制時使用Matrix對象的方法,也可以使用一個ColorMatrix對象來改變用于在Canvas對象上繪制的Paint對象。

同樣,ColorMatrix以類似的方式工作。它是一個數(shù)字數(shù)組,可以對圖像的像素進行操作。然而不同于操作x、y和z坐標,它操作顏色值——每個像素的Red(紅)、Green(綠)、Blue(藍)和Alpha值。

通過調(diào)用其沒有任何參數(shù)的構(gòu)造函數(shù),我們可以構(gòu)建一個默認的ColorMatrix對象。

ColorMatrix cm = new ColorMatrix();

使用ColorMatrix對象構(gòu)建一個ColorMatrixColorFilter對象,并將它應(yīng)用于Paint對象,從而使得這個ColorMatrix對象可用來改變Canvas對象上的繪制內(nèi)容。

paint.setColorFilter(new ColorMatrixColorFilter(cm));

為了能夠?qū)olorMatrix對象進行實驗,可以簡單地將它插入到“選擇圖片”示例中的繪圖部分。

Bitmap bmp = BitmapFactory.decodeStream(getContentResolver().

openInputStream(imageFileUri), null, bmpFactoryOptions);

Bitmap alteredBitmap = Bitmap.createBitmap(bmp.getWidth(),

bmp.getHeight(),bmp.getConfig());

Canvas canvas = new Canvas(alteredBitmap);

Paint paint = new Paint();

ColorMatrix cm = new ColorMatrix();

paint.setColorFilter(new ColorMatrixColorFilter(cm));

Matrix matrix = new Matrix();

canvas.drawBitmap(bmp, matrix, paint);

alteredImageView.setImageBitmap(alteredBitmap);

chosenImageView.setImageBitmap(bmp);


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號