android 活动阈值,android-位图阈值更快

我正在尝试编写一种将采用位图并将其强制为严格的黑白图像(无灰色阴影)的方法.

我首先将位图传递给使用colormatrix使其变为灰度的方法:

public Bitmap toGrayscale(Bitmap bmpOriginal)

{

int width, height;

height = bmpOriginal.getHeight();

width = bmpOriginal.getWidth();

Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);

Canvas c = new Canvas(bmpGrayscale);

Paint paint = new Paint();

ColorMatrix cm = new ColorMatrix();

cm.setSaturation(0);

ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);

paint.setColorFilter(f);

c.drawBitmap(bmpOriginal, 0, 0, paint);

return bmpGrayscale;

}

效果很好,而且很快.

然后我将其传递给另一种方法,以将灰度图像强制为2色图像(黑白),此方法有效,但显然它正在遍历每个像素,并且需要很长时间:

public Bitmap toStrictBlackWhite(Bitmap bmp){

Bitmap imageOut = bmp;

int tempColorRed;

for(int y=0; y

for(int x=0; x

tempColorRed = Color.red(imageOut.getPixel(x,y));

Log.v(TAG, "COLOR: "+tempColorRed);

if(imageOut.getPixel(x,y) < 127){

imageOut.setPixel(x, y, 0xffffff);

}

else{

imageOut.setPixel(x, y, 0x000000);

}

}

}

return imageOut;

}

有人知道更快,更有效的方法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值