C++ (Qt)struct ARGB { ... float alpha, red, green, blue;};
C++ (Qt)friend ARGB operator + ( const ARGB & c1, const ARGB & c2 ){ return ARGB(c1.alpha + c2.alpha, c1.red + c2.red, c1.green + c2.green, c1.blue + c2.blue);}
C++ (Qt)ARGB c1, c2;...// теперь мне надо получить среднее значение// хорошо бы записать такARGB average = (c1 + c2) * 0.5f;
C++ (Qt)ARGB AverageARGB( const ARGB & c1, const ARGB & c2 ){ ARGB result; // interpolate alpha result.a = (c1.a + c2.a) * 0.5f; // interpolate premultiplied colours result.r = (c1,r * c1.a + c2.r * c2.a) * 0.5f; result.g = (c1,g * c1.a + c2.g * c2.a) * 0.5f; result.b = (c1,b * c1.a + c2.b * c2.a) * 0.5f; // clip divider float divider = MAX(result.a, 1.0e-4f); // unpremultiply RGB result.r /= divider; result.g /= divider; result.b /= divider; return result;}
result.r = (c1.r + c2.r) * 0.5; result.g = (c1.g+ c2.g) * 0.5; result.b = (c1.b+ c2.b) * 0.5; result.a = (c1.a+ c2.a) * 0.5;
result.r = (c1.r + c2.r) * 0.5