hsbcolor - java.awt.color purple
¿Transforma RGBA con color subyacente en RGB? (1)
Tal como dice el artículo de Wikipedia (asumiendo un fondo opaco):
int r, g, b;
r = fgColor.getRed() * fgColor.getAlpha() + bgColor.getRed() * (255 - fgColor.getAlpha());
g = fgColor.getGreen() * fgColor.getAlpha() + bgColor.getGreen() * (255 - fgColor.getAlpha());
b = fgColor.getBlue() * fgColor.getAlpha() + bgColor.getBlue() * (255 - fgColor.getAlpha());
Color result = new Color(r / 255, g / 255, b / 255);
Descargo de responsabilidad: no he probado esto, pero debería funcionar.
Si el color de primer plano es constante (como un rectángulo transparente lleno), puede optimizar un montón precomputando fgColor.getComponent() * fgColor.getAlpha()
y (255 - fgColor.getAlpha())
.
Tengo un problema con la transformación de colores en Java. El problema simplificado se parece a lo siguiente:
Mi aplicación contiene una imagen. He puesto un Recangle sobre esta imagen. El color del Rectángulo se define como Color nuevo (255, 255, 0, 80).
¿Es posible calcular / transformar el Color que se muestra en la Pantalla en un Color sin Valor Alfa sin el método getPixelColor () -? Formulado diferente: ¿Puedo calcular un Color sin valor alfa de un Color con valor alfa + el color subyacente?
Espero que alguien pueda ayudarme.
Saludos, Michael