Autor Wątek: Kolorowanie bitmapy  (Przeczytany 596 razy)

Offline baca130

  • Użytkownik

# Grudzień 10, 2011, 22:23:46
Co ja źle zrobiłem, że kod nie działa tak jak powinien.

On ma za zadanie kolorować białą bitmapę i niby działa dobrze tylko są kłopoty z przezroczystością, nie wiem gdzie?

static Bitmap changeColor(Bitmap src, int color)
{
int width = src.getWidth();
int height = src.getHeight();
int pixels[] = new int[width*height];
int pixels2[] = new int[width*height];
src.getPixels(pixels, 0, width, 0, 0, width, height);
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
int a = Color.blue(color);
float af = ((float)a/2.55f)/100.0f;
for(int i = 0; i<pixels.length; i++)
{
int a2 = Color.alpha(pixels[i]);
pixels2[i] = Color.argb((int)(a2*af), r, g, b);
}
return Bitmap.createBitmap(pixels2, width, height, Bitmap.Config.ARGB_8888);
}

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline vashpan

  • Użytkownik
    • Strona

# Grudzień 10, 2011, 22:28:30
int a = Color.blue(color); ?
Czemu tak ?

Offline baca130

  • Użytkownik

# Grudzień 11, 2011, 00:01:02
A czemu tego nie widziałem.