如何在android中更改图像的亮度?

时间:2011-01-21 08:57:45

标签: android brightness

我正在开发android.i中的图像处理软件想要改变特定图像的亮度。它可以在代码中完成吗?

2 个答案:

答案 0 :(得分:7)

我现在正在使用这样的东西:

if (brighter)
{
    darknessPaint.setColorFilter(new PorterDuffColorFilter(Color.argb(level, 255, 255, 255), Mode.SRC_OVER));
}
else
{
    darknessPaint.setColorFilter(new PorterDuffColorFilter(Color.argb(level, 0, 0, 0), Mode.SRC_ATOP));
}

darknessCanvas.setBitmap(dst);
darknessCanvas.drawBitmap(src, 0, 0, darknessPaint);

确实你也可以使用LightningColorFilter或ColorMatrixColorFilter。如果有人有更好的(我的意思是更快,除了使用我尚未尝试的JNI)方法,请告诉我。

答案 1 :(得分:3)

您可能希望查看LightingColorFilterDrawable,或者如果您想手动执行操作,请查看Bitmap - 具体为getPixels和{{1} }(或setPixelscopyPixelsFromBuffer,如果您愿意的话)。