}
case IntensityCompositeOp:
{
- pixel=(double) GetPixelIntensity(composite_image,p);
+ pixel=GetPixelIntensity(composite_image,p);
break;
}
case LightenIntensityCompositeOp:
q+=GetPixelChannels(blur_image);
continue;
}
- intensity=(double) GetPixelIntensity(image,p+center);
+ intensity=GetPixelIntensity(image,p+center);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
double
{
for (u=0; u < (ssize_t) width; u++)
{
- contrast=(double) GetPixelIntensity(luminance_image,
- luminance_pixels)-intensity;
+ contrast=GetPixelIntensity(luminance_image,luminance_pixels)-
+ intensity;
if (fabs(contrast) < threshold)
{
pixel+=(*k)*pixels[i];
register ssize_t
i;
- pixel=(double) GetPixelIntensity(image,p);
+ pixel=GetPixelIntensity(image,p);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
if (image->channel_mask != DefaultChannels)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- histogram[ScaleQuantumToMap(GetPixelIntensity(image,p))]++;
+ double
+ intensity;
+
+ intensity=GetPixelIntensity(image,p);
+ histogram[ScaleQuantumToMap(ClampToQuantum(intensity))]++;
p+=GetPixelChannels(image);
}
}
intensity,
tone;
- intensity=(double) GetPixelIntensity(image,p);
+ intensity=GetPixelIntensity(image,p);
tone=intensity > threshold ? (double) QuantumRange : intensity+
(double) QuantumRange-threshold;
SetPixelRed(sepia_image,ClampToQuantum(tone),q);
#if 1
static inline size_t fact(size_t n)
{
- size_t l,f;
+ size_t f,l;
for(f=1, l=2; l <= n; f=f*l, l++);
return(f);
}
/* set all kernel values within diamond area to scale given */
for ( i=0, v=0; v < (ssize_t)kernel->height; v++)
{ size_t
- alpha = order_f / ( fact(v) * fact(kernel->height-v-1) );
+ alpha = order_f / ( fact((size_t) v) * fact(kernel->height-v-1) );
for ( u=0; u < (ssize_t)kernel->width; u++, i++)
kernel->positive_range += kernel->values[i] = (double)
- (alpha * order_f / ( fact(u) * fact(kernel->height-u-1) ));
+ (alpha * order_f / ( fact((size_t) u) * fact(kernel->height-u-1) ));
}
kernel->minimum = 1.0;
kernel->maximum = kernel->values[kernel->x+kernel->y*kernel->width];
{
for (u=0; u < (ssize_t) width; u++)
{
- n=(ssize_t) ScaleQuantumToChar(GetPixelIntensity(image,p+
- GetPixelChannels(image)*(u+k)));
+ n=(ssize_t) ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,
+ p+GetPixelChannels(image)*(u+k))));
histogram[n]++;
if (histogram[n] > count)
{
return(0.21267*red+0.71516*green+0.07217*blue);
}
-static inline Quantum GetPixelIntensity(const Image *restrict image,
+static inline double GetPixelIntensity(const Image *restrict image,
const Quantum *restrict pixel)
{
double
red;
if (image->colorspace == GRAYColorspace)
- return(pixel[image->channel_map[GrayPixelChannel].offset]);
+ return((double) pixel[image->channel_map[GrayPixelChannel].offset]);
if (image->colorspace != sRGBColorspace)
- return(ClampToQuantum(
- 0.298839*pixel[image->channel_map[RedPixelChannel].offset]+
+ return(0.298839*pixel[image->channel_map[RedPixelChannel].offset]+
0.586811*pixel[image->channel_map[GreenPixelChannel].offset]+
- 0.114350*pixel[image->channel_map[BluePixelChannel].offset]));
+ 0.114350*pixel[image->channel_map[BluePixelChannel].offset]);
red=InversesRGBCompandor((double)
pixel[image->channel_map[RedPixelChannel].offset]);
green=InversesRGBCompandor((double)
pixel[image->channel_map[GreenPixelChannel].offset]);
blue=InversesRGBCompandor((double)
pixel[image->channel_map[BluePixelChannel].offset]);
- return(ClampToQuantum(0.298839*red+0.586811*green+0.114350*blue));
+ return(0.298839*red+0.586811*green+0.114350*blue);
}
static inline Quantum GetPixelL(const Image *restrict image,
return(pixel[image->channel_map[LPixelChannel].offset]);
}
-static inline Quantum GetPixelLuminance(const Image *restrict image,
+static inline double GetPixelLuminance(const Image *restrict image,
const Quantum *restrict pixel)
{
double
red;
if (image->colorspace == GRAYColorspace)
- return(pixel[image->channel_map[GrayPixelChannel].offset]);
+ return((double) pixel[image->channel_map[GrayPixelChannel].offset]);
if (image->colorspace != sRGBColorspace)
- return(ClampToQuantum(
- 0.298839*pixel[image->channel_map[RedPixelChannel].offset]+
+ return(0.298839*pixel[image->channel_map[RedPixelChannel].offset]+
0.586811*pixel[image->channel_map[GreenPixelChannel].offset]+
- 0.114350*pixel[image->channel_map[BluePixelChannel].offset]));
+ 0.114350*pixel[image->channel_map[BluePixelChannel].offset]);
red=InversesRGBCompandor((double)
pixel[image->channel_map[RedPixelChannel].offset]);
green=InversesRGBCompandor((double)
pixel[image->channel_map[GreenPixelChannel].offset]);
blue=InversesRGBCompandor((double)
pixel[image->channel_map[BluePixelChannel].offset]);
- return(ClampToQuantum(0.21267*red+0.71516*green+0.07217*blue));
+ return(0.21267*red+0.71516*green+0.07217*blue);
}
static inline Quantum GetPixelMagenta(const Image *restrict image,
{
case 1:
{
- register Quantum
+ register double
threshold;
register unsigned char
black=0x01;
white=0x00;
}
- threshold=(Quantum) (QuantumRange/2);
+ threshold=QuantumRange/2.0;
for (x=((ssize_t) number_pixels-7); x > 0; x-=8)
{
*q='\0';
for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
{
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
*q=(((pixel >> 4) & 0xf) << 4);
p+=GetPixelChannels(image);
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
*q|=pixel >> 4;
p+=GetPixelChannels(image);
q++;
}
if ((number_pixels % 2) != 0)
{
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
*q=(((pixel >> 4) & 0xf) << 4);
p+=GetPixelChannels(image);
q++;
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopCharPixel(pixel,q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
{
- pixel=(unsigned int) (ScaleQuantumToAny(GetPixelIntensity(image,
- p+2*GetPixelChannels(image)),range) << 22 | ScaleQuantumToAny(
- GetPixelIntensity(image,p+GetPixelChannels(image)),range) << 12 |
- ScaleQuantumToAny(GetPixelIntensity(image,p),range) << 2);
+ pixel=(unsigned int) (ScaleQuantumToAny(ClampToQuantum(
+ GetPixelIntensity(image,p+2*GetPixelChannels(image))),range) <<
+ 22 | ScaleQuantumToAny(ClampToQuantum(GetPixelIntensity(image,
+ p+GetPixelChannels(image))),range) << 12 | ScaleQuantumToAny(
+ ClampToQuantum(GetPixelIntensity(image,p)),range) << 2);
q=PopLongPixel(quantum_info->endian,pixel,q);
p+=3*GetPixelChannels(image);
q+=quantum_info->pad;
{
pixel=0U;
if (x++ < (ssize_t) (number_pixels-1))
- pixel|=ScaleQuantumToAny(GetPixelIntensity(image,p+
- GetPixelChannels(image)),range) << 12;
+ pixel|=ScaleQuantumToAny(ClampToQuantum(GetPixelIntensity(image,
+ p+GetPixelChannels(image))),range) << 12;
if (x++ < (ssize_t) number_pixels)
- pixel|=ScaleQuantumToAny(GetPixelIntensity(image,p),range) << 2;
+ pixel|=ScaleQuantumToAny(ClampToQuantum(GetPixelIntensity(image,
+ p)),range) << 2;
q=PopLongPixel(quantum_info->endian,pixel,q);
}
break;
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(
- GetPixelIntensity(image,p),range),q);
+ q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum(
+ GetPixelIntensity(image,p)),range),q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
}
{
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToShort(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToShort(ClampToQuantum(
+ GetPixelIntensity(image,p)));
q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel >> 4),
q);
p+=GetPixelChannels(image);
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(
- GetPixelIntensity(image,p),range),q);
+ q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum(
+ GetPixelIntensity(image,p)),range),q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
}
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToShort(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToShort(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopShortPixel(quantum_info->endian,pixel,q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToLong(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToLong(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopLongPixel(quantum_info->endian,pixel,q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
double
pixel;
- pixel=(double) GetPixelIntensity(image,p);
+ pixel=GetPixelIntensity(image,p);
q=PopDoublePixel(quantum_info,pixel,q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
range=GetQuantumRange(quantum_info->depth);
for (x=0; x < (ssize_t) number_pixels; x++)
{
- q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(
- GetPixelIntensity(image,p),range),q);
+ q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum(
+ GetPixelIntensity(image,p)),range),q);
p+=GetPixelChannels(image);
q+=quantum_info->pad;
}
{
case 1:
{
- register Quantum
+ register double
threshold;
register unsigned char
black=0x01;
white=0x00;
}
- threshold=(Quantum) (QuantumRange/2);
+ threshold=QuantumRange/2.0;
for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
{
*q='\0';
for (x=0; x < (ssize_t) number_pixels ; x++)
{
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
*q=(((pixel >> 4) & 0xf) << 4);
pixel=(unsigned char) (16*QuantumScale*GetPixelAlpha(image,p)+0.5);
*q|=pixel & 0xf;
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopCharPixel(pixel,q);
pixel=ScaleQuantumToChar(GetPixelAlpha(image,p));
q=PopCharPixel(pixel,q);
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToShort(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToShort(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopShortPixel(quantum_info->endian,pixel,q);
pixel=ScaleQuantumToShort(GetPixelAlpha(image,p));
q=PopShortPixel(quantum_info->endian,pixel,q);
}
for (x=0; x < (ssize_t) number_pixels; x++)
{
- pixel=ScaleQuantumToLong(GetPixelIntensity(image,p));
+ pixel=ScaleQuantumToLong(ClampToQuantum(GetPixelIntensity(image,p)));
q=PopLongPixel(quantum_info->endian,pixel,q);
pixel=ScaleQuantumToLong(GetPixelAlpha(image,p));
q=PopLongPixel(quantum_info->endian,pixel,q);
double
pixel;
- pixel=(double) GetPixelIntensity(image,p);
+ pixel=GetPixelIntensity(image,p);
q=PopDoublePixel(quantum_info,pixel,q);
pixel=(double) (GetPixelAlpha(image,p));
q=PopDoublePixel(quantum_info,pixel,q);
range=GetQuantumRange(quantum_info->depth);
for (x=0; x < (ssize_t) number_pixels; x++)
{
- q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(
- GetPixelIntensity(image,p),range),q);
+ q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum(
+ GetPixelIntensity(image,p)),range),q);
q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(GetPixelAlpha(image,p),
range),q);
p+=GetPixelChannels(image);
for (x=0; x < (ssize_t) image->columns; x++)
{
byte<<=1;
- if ((double) GetPixelIntensity(image,p) < threshold)
+ if (GetPixelIntensity(image,p) < threshold)
byte|=0x01;
bit++;
if (bit == 8)
for (x=0; x < (ssize_t) image->columns; x++)
{
byte<<=1;
- if ((double) GetPixelIntensity(image,p) < threshold)
+ if (GetPixelIntensity(image,p) < threshold)
byte|=0x01;
bit++;
if (bit == 8)
break;
for (x=0; x < (ssize_t) GetImageExtent(image); x++)
{
- *q++=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ *q++=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
p++;
}
break;
}
case IndexQuantum:
{
- *q=ScaleQuantumToChar(GetPixelIntensity(image,p));
+ *q=ScaleQuantumToChar(ClampToQuantum(GetPixelIntensity(image,p)));
break;
}
default:
break;
for (x=0; x < (ssize_t) GetImageExtent(image); x++)
{
- *q++=ScaleQuantumToLong(GetPixelIntensity(image,p));
+ *q++=ScaleQuantumToLong(ClampToQuantum(GetPixelIntensity(image,p)));
p++;
}
break;
}
case IndexQuantum:
{
- *q=ScaleQuantumToLong(GetPixelIntensity(image,p));
+ *q=ScaleQuantumToLong(ClampToQuantum(GetPixelIntensity(image,p)));
break;
}
default:
break;
for (x=0; x < (ssize_t) GetImageExtent(image); x++)
{
- *q++=ScaleQuantumToLongLong(
- GetPixelIntensity(image,p));
+ *q++=ScaleQuantumToLongLong(ClampToQuantum(
+ GetPixelIntensity(image,p)));
p++;
}
break;
}
case IndexQuantum:
{
- *q=ScaleQuantumToLongLong(GetPixelIntensity(image,p));
+ *q=ScaleQuantumToLongLong(ClampToQuantum(
+ GetPixelIntensity(image,p)));
break;
}
default:
break;
for (x=0; x < (ssize_t) GetImageExtent(image); x++)
{
- *q++=GetPixelIntensity(image,p);
+ *q++=ClampToQuantum(GetPixelIntensity(image,p));
p++;
}
break;
}
case IndexQuantum:
{
- *q=GetPixelIntensity(image,p);
+ *q=ClampToQuantum(GetPixelIntensity(image,p));
break;
}
default:
break;
for (x=0; x < (ssize_t) GetImageExtent(image); x++)
{
- *q++=ScaleQuantumToShort(GetPixelIntensity(image,p));
+ *q++=ScaleQuantumToShort(ClampToQuantum(
+ GetPixelIntensity(image,p)));
p++;
}
break;
}
case IndexQuantum:
{
- *q=ScaleQuantumToShort(GetPixelIntensity(image,p));
+ *q=ScaleQuantumToShort(ClampToQuantum(
+ GetPixelIntensity(image,p)));
break;
}
default:
q+=GetPixelChannels(image);
continue;
}
- pixel=(double) GetPixelIntensity(image,q);
+ pixel=GetPixelIntensity(image,q);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
if ((traits & UpdatePixelTrait) == 0)
continue;
if (image->channel_mask != DefaultChannels)
- pixel=q[i];
+ pixel=(double) q[i];
q[i]=(Quantum) (pixel <= threshold ? 0 : QuantumRange);
}
q+=GetPixelChannels(image);
q+=GetPixelChannels(image);
continue;
}
- pixel=(double) GetPixelIntensity(image,q);
+ pixel=GetPixelIntensity(image,q);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
if ((traits & UpdatePixelTrait) == 0)
continue;
if (image->channel_mask != DefaultChannels)
- pixel=q[i];
+ pixel=(double) q[i];
if (pixel <= GetPixelInfoChannel(&threshold,channel))
q[i]=0;
}
q+=GetPixelChannels(image);
continue;
}
- pixel=(double) GetPixelIntensity(image,q);
+ pixel=GetPixelIntensity(image,q);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
if ((traits & UpdatePixelTrait) == 0)
continue;
if (image->channel_mask != DefaultChannels)
- pixel=q[i];
+ pixel=(double) q[i];
if (pixel > GetPixelInfoChannel(&threshold,channel))
q[i]=QuantumRange;
}
green,
red;
- double
- intensity;
-
- red=InversesRGBCompandor(pixel->red);
- green=InversesRGBCompandor(pixel->green);
- blue=InversesRGBCompandor(pixel->blue);
- intensity=0.298839*red+0.586811*green+0.114350*blue;
- return(intensity);
+ red=InversesRGBCompandor((double) pixel->red);
+ green=InversesRGBCompandor((double) pixel->green);
+ blue=InversesRGBCompandor((double) pixel->blue);
+ return(0.298839*red+0.586811*green+0.114350*blue);
}
#endif