13 template<
typename TPIXEL,
typename TCHANNEL>
18 if (index >= chCount) {
27 TCHANNEL * s = (TCHANNEL *) data + index;
28 TCHANNEL * end = (TCHANNEL *) (data + width * height);
40 template<
typename TPIXEL,
typename TCHANNEL>
42 if (ownsData && (data != NULL)) {
47 template<
typename TPIXEL,
typename TCHANNEL>
58 TCHANNEL * ptr = (TCHANNEL *) data;
59 TCHANNEL * ptrEnd = (TCHANNEL *) (data + width * height);
61 while (ptr < ptrEnd) {
62 alpha = *(ptr + 3) / (
double) maxVal;
63 *ptr = *ptr * alpha + 0.5;
65 *ptr = *ptr * alpha + 0.5;
67 *ptr = *ptr * alpha + 0.5;
75 template<
typename TPIXEL,
typename TCHANNEL>
86 TCHANNEL * ptr = (TCHANNEL *) data;
87 TCHANNEL * ptrEnd = (TCHANNEL *) (data + width * height);
90 while (ptr < ptrEnd) {
96 alpha = tmp / (double) maxVal;
98 *ptr = *ptr / alpha + 0.5;
100 *ptr = *ptr / alpha + 0.5;
102 *ptr = *ptr / alpha + 0.5;
109 template<
typename TPIXEL,
typename TCHANNEL>
143 template<
typename TPIXEL,
typename TCHANNEL>
154 TCHANNEL * s1 = (TCHANNEL *) data;
155 TCHANNEL * s2 = (TCHANNEL *) other.
getData();
156 TCHANNEL * d = (TCHANNEL *) res->
getData();
157 TCHANNEL * s1End = (TCHANNEL *) (data + width * height);
160 TCHANNEL maxVal = ~minVal;
164 *d = (*s1 == *s2) ? maxVal : minVal;