J'ai donc besoin de mélanger 2 couleurs avec des valeurs alpha différentes. L'une ou l'autre couleur peut avoir une couleur alpha de 0-255. Voici l'algorithme que j'utilise maintenant et ça ne marche pas. Si l'alpha est supérieur à 1 pour l'une ou l'autre couleur, alors la couleur entière devient solide. Sur une échelle de 0-255, 1 devrait être presque entièrement transparent. Que dois-je changer pour y parvenir?Fusionner 2 couleurs en Java
public void blend(Color color1, Color color2, double ratio) {
float r = (float) ratio;
float ir = (float) 1.0 - r;
float[] rgb1 = new float[3];
float[] rgb2 = new float[3];
color1.getColorComponents(rgb1);
color2.getColorComponents(rgb2);
Color color = new Color(rgb1[0] * r + rgb2[0] * ir, rgb1[1] * r + rgb2[1] * ir, rgb1[2] * r + rgb2[2] * ir);
this.color = color;
}
Double vérifiez que 'ratio' est dans la plage de 0.0-1.0 – vandale
Juste une note: Dans Java, vous devez déclarer vos tableaux avec les parenthèses avec le type:' float [] rgb1 = new float [3] '. – Keppil
@vandale Il est défini sur 0,5 – user3140916