我有一種方法會使用彩色濾鏡將效果添加到位圖。例如:對位圖使用5x5色彩矩陣
public static Bitmap changeContrast(Bitmap bmp, float contrast)
{
ColorMatrix cm = new ColorMatrix(new float[]
{
contrast, 0, 0, 0, 0,
0, contrast, 0, 0, 0,
0, 0, contrast, 0, 0,
0, 0, 0, 1, 0
});
return getBitmapFromColorMatrix(cm, bmp);
}
不過,我想用一個銳化濾波器矩陣:
0 0 0 0 0
0 -1 -1 -1 0
0 -1 9 -1 0
0 -1 -1 -1 0
0 0 0 0 0
但嘉洛斯只接受4x5的矩陣陣列。有沒有一種方法可以在我的位圖中使用5x5矩陣?
我試了一下:
我嘗試使用ScriptIntrinsicConvolve5x5
類,但它需要API17及以上,但我需要使用API下來API14。我怎樣才能做到這一點。請幫忙。
UPDATE:
這是getBitmapFromColorMatrix(代碼),這可能是有幫助的。
static Bitmap getBitmapFromColorMatrix (ColorMatrix cm, Bitmap sourceBitmap) {
Bitmap ret = Bitmap.createBitmap(sourceBitmap.getWidth(), sourceBitmap.getHeight(), sourceBitmap.getConfig());
Canvas canvas = new Canvas(ret);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(sourceBitmap, 0, 0, paint);
return ret;
}