Как раскрасить рисунок? - PullRequest
       42

Как раскрасить рисунок?

0 голосов
/ 14 сентября 2011

Как можно раскрасить Android для рисования, задав цветовой тон, дельту насыщенности и яркость?

1 Ответ

1 голос
/ 14 сентября 2011

Еще не проверял это, но оно должно работать.

public static BitmapDrawable colorize(BitmapDrawable d, float hue, float saturationDelta, float valueDelta) {
    Bitmap src = d.getBitmap();
    Bitmap b = src.copy(Bitmap.Config.ARGB_8888, true);
    for (int x = 0; x < b.getWidth(); x++) {
        for (int y = 0; y < b.getHeight(); y++) {
            int color = b.getPixel(x, y);
            float[] hsv = new float[3];
            Color.colorToHSV(color, hsv);
            hsv[0] = hue;
            hsv[1] += saturationDelta;
            hsv[2] += valueDelta;
            int newColor = Color.HSVToColor(Color.alpha(color), hsv);
            b.setPixel(x, y, newColor);
        }
    }
    return new BitmapDrawable(b);
}
...