Как изменить яркость изображения в Android? - PullRequest
4 голосов
/ 21 января 2011

Я занимаюсь разработкой программного обеспечения для работы с изображениями в Android. Я хочу изменить яркость конкретного изображения. Как это можно сделать в коде?

Ответы [ 2 ]

7 голосов
/ 10 апреля 2011

Я сейчас использую что-то вроде этого:

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, который я еще не пробовал) метод, сообщите мне.

3 голосов
/ 21 января 2011

Возможно, вы захотите взглянуть на LightingColorFilter и Drawable, или, если хотите выполнить манипуляцию вручную, посмотрите на Bitmap - в частности getPixels и setPixels (или copyPixelsFromBuffer и copyPixelsToBuffer, если хотите).

...