我正在开发android.i中的图像处理软件想要改变特定图像的亮度。它可以在代码中完成吗?
答案 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)
您可能希望查看LightingColorFilter
和Drawable
,或者如果您想手动执行操作,请查看Bitmap
- 具体为getPixels
和{{1} }(或setPixels
和copyPixelsFromBuffer
,如果您愿意的话)。