- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
if (clr1 != Color.Black && clr2 != Color.Black)
{
int R1 = clr1.R > clr2.R ? clr1.R - 1 : clr1.R + 1;
int R2 = clr1.R < clr2.R ? clr1.R - 1 : clr1.R + 1;
int G1 = clr1.G > clr2.G ? clr1.G - 1 : clr1.G + 1;
int G2 = clr1.G < clr2.G ? clr1.G - 1 : clr1.G + 1;
int B1 = clr1.B > clr2.B ? clr1.B - 1 : clr1.B + 1;
int B2 = clr1.B < clr2.B ? clr1.B - 1 : clr1.B + 1;
if (R1 > 255) R1 = 255; if (R1 < 0) R1 = 0;
if (R2 > 255) R2 = 255; if (R2 < 0) R2 = 0;
if (G1 > 255) G1 = 255; if (G1 < 0) G1 = 0;
if (G2 > 255) G2 = 255; if (G2 < 0) G2 = 0;
if (B1 > 255) B1 = 255; if (B1 < 0) B1 = 0;
if (B2 > 255) B2 = 255; if (B2 < 0) B2 = 0;
outp.b = Color.FromArgb(R1, G1, B1); outp.a = Color.FromArgb(R2, G2, B2);
}
Нашёл у себя такого красавца годичной давности - суровое "плавное" целочисленное интерполирование двух цветов для Compact Framework.
RaZeR 21.03.2011 13:39 # +2