0
所以我需要混合2種顏色與不同的alpha值。任何一種顏色都可以具有0-255的alpha顏色。這是我現在使用的算法,它不起作用。如果任一顏色的alpha都大於1,那麼整個顏色變爲固定。在0-255 1的範圍內應該幾乎完全透明。爲了實現這個目標我需要改變什麼?在Java中混合2色
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;
}
雙檢查以確保「比率」在0.0-1.0範圍內 – vandale
只需注意:在Java中,您應該使用括號將float [] rgb1 = new float [3]'聲明爲數組。 – Keppil
@vandale它被設置爲0.5 – user3140916