red=DecodesRGBGamma((double) GetPixelRed(image,q));
green=DecodesRGBGamma((double) GetPixelGreen(image,q));
blue=DecodesRGBGamma((double) GetPixelBlue(image,q));
- gray=0.298839*red+0.586811*green+0.114350*blue;
+ gray=0.298839f*red+0.586811f*green+0.114350f*blue;
SetPixelGray(image,ClampToQuantum(gray),q);
q+=GetPixelChannels(image);
}
/*
Initialize YCbCr tables (ITU-R BT.601):
- Y = 0.2988390*R+0.5868110*G+0.1143500*B
+ Y = 0.298839f0*R+0.586811f0*G+0.114350f0*B
Cb= -0.1687367*R-0.3312640*G+0.5000000*B
Cr= 0.5000000*R-0.4186880*G-0.0813120*B
#endif
for (i=0; i <= (ssize_t) MaxMap; i++)
{
- x_map[i].x=0.298839*i;
- y_map[i].x=0.586811*i;
- z_map[i].x=0.114350*i;
- x_map[i].y=(-0.1687367)*i;
- y_map[i].y=(-0.331264)*i;
- z_map[i].y=0.500000*i;
- x_map[i].z=0.500000*i;
- y_map[i].z=(-0.418688)*i;
- z_map[i].z=(-0.081312)*i;
+ x_map[i].x=(MagickRealType) (0.298839f*(float) i);
+ y_map[i].x=(MagickRealType) (0.586811f*(float) i);
+ z_map[i].x=(MagickRealType) (0.114350f*(float) i);
+ x_map[i].y=(MagickRealType) (-0.1687367f*(float) i);
+ y_map[i].y=(MagickRealType) (-0.331264f*(float) i);
+ z_map[i].y=(MagickRealType) (0.500000f*(float) i);
+ x_map[i].z=(MagickRealType) (0.500000f*(float) i);
+ y_map[i].z=(MagickRealType) (-0.418688f*(float) i);
+ z_map[i].z=(MagickRealType) (-0.081312f*(float) i);
}
break;
}
/*
Initialize YCC tables:
- Y = 0.298839*R+0.586811*G+0.114350*B
- C1= -0.298839*R-0.586811*G+0.88600*B
- C2= 0.70100*R-0.586811*G-0.114350*B
+ Y = 0.298839f*R+0.586811f*G+0.114350f*B
+ C1= -0.298839f*R-0.586811f*G+0.88600*B
+ C2= 0.70100*R-0.586811f*G-0.114350f*B
YCC is scaled by 1.3584. C1 zero is 156 and C2 is at 137.
*/
/*
Initialize YIQ tables:
- Y = 0.298839*R+0.586811*G+0.114350*B
+ Y = 0.298839f*R+0.586811f*G+0.114350f*B
I = 0.595716*R-0.274453*G-0.321263*B
Q = 0.211456*R-0.522591*G+0.311135*B
#endif
for (i=0; i <= (ssize_t) MaxMap; i++)
{
- x_map[i].x=0.298839*i;
- y_map[i].x=0.586811*i;
- z_map[i].x=0.114350*i;
- x_map[i].y=0.595716*i;
- y_map[i].y=(-0.274453)*i;
- z_map[i].y=(-0.321263)*i;
- x_map[i].z=0.211456*i;
- y_map[i].z=(-0.522591)*i;
- z_map[i].z=0.311135*i;
+ x_map[i].x=(MagickRealType) (0.298839f*(float) i);
+ y_map[i].x=(MagickRealType) (0.586811f*(float) i);
+ z_map[i].x=(MagickRealType) (0.114350f*(float) i);
+ x_map[i].y=(MagickRealType) (0.595716*(float) i);
+ y_map[i].y=(MagickRealType) (-0.274453f*(float) i);
+ z_map[i].y=(MagickRealType) (-0.321263f*(float) i);
+ x_map[i].z=(MagickRealType) (0.211456f*(float) i);
+ y_map[i].z=(MagickRealType) (-0.522591f*(float) i);
+ z_map[i].z=(MagickRealType) (0.311135f*(float) i);
}
break;
}
/*
Initialize YPbPr tables (ITU-R BT.601):
- Y = 0.2988390*R+0.5868110*G+0.1143500*B
+ Y = 0.298839f0*R+0.586811f0*G+0.114350f0*B
Pb= -0.1687367*R-0.3312640*G+0.5000000*B
Pr= 0.5000000*R-0.4186880*G-0.0813120*B
#endif
for (i=0; i <= (ssize_t) MaxMap; i++)
{
- x_map[i].x=0.298839*i;
- y_map[i].x=0.586811*i;
- z_map[i].x=0.114350*i;
- x_map[i].y=(-0.1687367)*i;
- y_map[i].y=(-0.331264)*i;
- z_map[i].y=0.500000*i;
- x_map[i].z=0.500000*i;
- y_map[i].z=(-0.418688)*i;
- z_map[i].z=(-0.081312)*i;
+ x_map[i].x=(MagickRealType) (0.298839f*(float) i);
+ y_map[i].x=(MagickRealType) (0.586811f*(float) i);
+ z_map[i].x=(MagickRealType) (0.114350f*(float) i);
+ x_map[i].y=(MagickRealType) (-0.1687367f*(float) i);
+ y_map[i].y=(MagickRealType) (-0.331264*(float) i);
+ z_map[i].y=(MagickRealType) (0.500000f*(float) i);
+ x_map[i].z=(MagickRealType) (0.500000f*(float) i);
+ y_map[i].z=(MagickRealType) (-0.418688f*(float) i);
+ z_map[i].z=(MagickRealType) (-0.081312f*(float) i);
}
break;
}
/*
Initialize YUV tables:
- Y = 0.298839*R+0.586811*G+0.114350*B
+ Y = 0.298839f*R+0.586811f*G+0.114350f*B
U = -0.147130*R-0.288860*G+0.436000*B
V = 0.615000*R-0.514990*G-0.100010*B
#endif
for (i=0; i <= (ssize_t) MaxMap; i++)
{
- x_map[i].x=0.298839*i;
- y_map[i].x=0.586811*i;
- z_map[i].x=0.114350*i;
- x_map[i].y=(-0.147130)*i;
- y_map[i].y=(-0.288860)*i;
- z_map[i].y=0.436000*i;
- x_map[i].z=0.615000*i;
- y_map[i].z=(-0.514990)*i;
- z_map[i].z=(-0.100001)*i;
+ x_map[i].x=(MagickRealType) (0.298839f*(float) i);
+ y_map[i].x=(MagickRealType) (0.586811f*(float) i);
+ z_map[i].x=(MagickRealType) (0.114350f*(float) i);
+ x_map[i].y=(MagickRealType) (-0.147130f*(float) i);
+ y_map[i].y=(MagickRealType) (-0.288860f*(float) i);
+ z_map[i].y=(MagickRealType) (0.436000f*(float) i);
+ x_map[i].z=(MagickRealType) (0.615000f*(float) i);
+ y_map[i].z=(MagickRealType) (-0.514990f*(float) i);
+ z_map[i].z=(MagickRealType) (-0.100001f*(float) i);
}
break;
}
}
else
{
- pixel.red=EncodesRGBGamma(ScaleMapToQuantum(pixel.red));
- pixel.green=EncodesRGBGamma(ScaleMapToQuantum(pixel.green));
- pixel.blue=EncodesRGBGamma(ScaleMapToQuantum(pixel.blue));
+ pixel.red=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.red));
+ pixel.green=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.green));
+ pixel.blue=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.blue));
}
SetPixelRed(image,ClampToQuantum(pixel.red),q);
SetPixelGreen(image,ClampToQuantum(pixel.green),q);
}
else
{
- pixel.red=EncodesRGBGamma(ScaleMapToQuantum(pixel.red));
- pixel.green=EncodesRGBGamma(ScaleMapToQuantum(pixel.green));
- pixel.blue=EncodesRGBGamma(ScaleMapToQuantum(pixel.blue));
+ pixel.red=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.red));
+ pixel.green=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.green));
+ pixel.blue=EncodesRGBGamma((MagickRealType)
+ ScaleMapToQuantum(pixel.blue));
}
image->colormap[i].red=(double) ClampToQuantum(pixel.red);
image->colormap[i].green=(double) ClampToQuantum(pixel.green);
#undef index
-static inline double DecodesRGBGamma(const double pixel)
+static inline MagickRealType DecodesRGBGamma(const MagickRealType pixel)
{
if (pixel <= (0.0404482362771076*QuantumRange))
- return(pixel/12.92);
- return(QuantumRange*pow((QuantumScale*pixel+0.055)/1.055,2.4));
+ return(pixel/12.92f);
+ return(QuantumRange*pow((double) (QuantumScale*pixel+0.055)/1.055,2.4));
}
-static inline double EncodesRGBGamma(const double pixel)
+static inline MagickRealType EncodesRGBGamma(const MagickRealType pixel)
{
if (pixel <= (0.0031306684425005883*QuantumRange))
- return(12.92*pixel);
- return(QuantumRange*(1.055*pow(QuantumScale*pixel,1.0/2.4)-0.055));
+ return(12.92f*pixel);
+ return(QuantumRange*(1.055*pow((double) QuantumScale*pixel,1.0/2.4)-0.055));
}
static inline Quantum GetPixela(const Image *restrict image,
return(image->channel_map[IndexPixelChannel].traits);
}
-static inline double GetPixelInfoChannel(const PixelInfo *restrict pixel_info,
- const PixelChannel channel)
+static inline MagickRealType GetPixelInfoChannel(
+ const PixelInfo *restrict pixel_info,const PixelChannel channel)
{
switch (channel)
{
case BlackPixelChannel: return(pixel_info->black);
case AlphaPixelChannel: return(pixel_info->alpha);
case IndexPixelChannel: return(pixel_info->index);
- default: return(0.0);
+ default: return((MagickRealType) 0.0);
}
}
-static inline double GetPixelInfoIntensity(const PixelInfo *restrict pixel_info)
+static inline MagickRealType GetPixelInfoIntensity(
+ const PixelInfo *restrict pixel_info)
{
- double
+ MagickRealType
blue,
green,
red;
if (pixel_info->colorspace == GRAYColorspace)
return(pixel_info->red);
if (pixel_info->colorspace != sRGBColorspace)
- return(0.298839*pixel_info->red+0.586811*pixel_info->green+
- 0.114350*pixel_info->blue);
+ return(0.298839f*pixel_info->red+0.586811f*pixel_info->green+
+ 0.114350f*pixel_info->blue);
red=DecodesRGBGamma(pixel_info->red);
green=DecodesRGBGamma(pixel_info->green);
blue=DecodesRGBGamma(pixel_info->blue);
- return(0.298839*red+0.586811*green+0.114350*blue);
+ return(0.298839f*red+0.586811f*green+0.114350f*blue);
}
-static inline double GetPixelInfoLuminance(const PixelInfo *restrict pixel_info)
+static inline MagickRealType GetPixelInfoLuminance(
+ const PixelInfo *restrict pixel_info)
{
- double
+ MagickRealType
blue,
green,
red;
if (pixel_info->colorspace == GRAYColorspace)
return(pixel_info->red);
if (pixel_info->colorspace != sRGBColorspace)
- return(0.21267*pixel_info->red+0.71516*pixel_info->green+
- 0.07217*pixel_info->blue);
+ return(0.21267f*pixel_info->red+0.71516f*pixel_info->green+
+ 0.07217f*pixel_info->blue);
red=DecodesRGBGamma(pixel_info->red);
green=DecodesRGBGamma(pixel_info->green);
blue=DecodesRGBGamma(pixel_info->blue);
- return(0.21267*red+0.71516*green+0.07217*blue);
+ return(0.21267f*red+0.71516f*green+0.07217f*blue);
}
-static inline double GetPixelIntensity(const Image *restrict image,
+static inline MagickRealType GetPixelIntensity(const Image *restrict image,
const Quantum *restrict pixel)
{
- double
+ MagickRealType
blue,
green,
red;
if (image->colorspace == GRAYColorspace)
- return((double) pixel[image->channel_map[GrayPixelChannel].offset]);
+ return((MagickRealType) pixel[image->channel_map[GrayPixelChannel].offset]);
if (image->colorspace != sRGBColorspace)
- 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]);
- red=DecodesRGBGamma((double)
+ return(0.298839f*pixel[image->channel_map[RedPixelChannel].offset]+
+ 0.586811f*pixel[image->channel_map[GreenPixelChannel].offset]+
+ 0.114350f*pixel[image->channel_map[BluePixelChannel].offset]);
+ red=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[RedPixelChannel].offset]);
- green=DecodesRGBGamma((double)
+ green=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset]);
- blue=DecodesRGBGamma((double)
+ blue=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[BluePixelChannel].offset]);
- return(0.298839*red+0.586811*green+0.114350*blue);
+ return(0.298839f*red+0.586811f*green+0.114350f*blue);
}
static inline Quantum GetPixelL(const Image *restrict image,
return(pixel[image->channel_map[LPixelChannel].offset]);
}
-static inline double GetPixelLuminance(const Image *restrict image,
+static inline MagickRealType GetPixelLuminance(const Image *restrict image,
const Quantum *restrict pixel)
{
- double
+ MagickRealType
blue,
green,
red;
if (image->colorspace == GRAYColorspace)
- return((double) pixel[image->channel_map[GrayPixelChannel].offset]);
+ return((MagickRealType) pixel[image->channel_map[GrayPixelChannel].offset]);
if (image->colorspace != sRGBColorspace)
- 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]);
- red=DecodesRGBGamma((double)
+ return(0.298839f*pixel[image->channel_map[RedPixelChannel].offset]+
+ 0.586811f*pixel[image->channel_map[GreenPixelChannel].offset]+
+ 0.114350f*pixel[image->channel_map[BluePixelChannel].offset]);
+ red=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[RedPixelChannel].offset]);
- green=DecodesRGBGamma((double)
+ green=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset]);
- blue=DecodesRGBGamma((double)
+ blue=DecodesRGBGamma((MagickRealType)
pixel[image->channel_map[BluePixelChannel].offset]);
- return(0.21267*red+0.71516*green+0.07217*blue);
+ return(0.21267f*red+0.71516f*green+0.07217f*blue);
}
static inline Quantum GetPixelMagenta(const Image *restrict image,
static inline void GetPixelInfoPixel(const Image *restrict image,
const Quantum *restrict pixel,PixelInfo *restrict pixel_info)
{
- pixel_info->red=(double)
+ pixel_info->red=(MagickRealType)
pixel[image->channel_map[RedPixelChannel].offset];
- pixel_info->green=(double)
+ pixel_info->green=(MagickRealType)
pixel[image->channel_map[GreenPixelChannel].offset];
- pixel_info->blue=(double)
+ pixel_info->blue=(MagickRealType)
pixel[image->channel_map[BluePixelChannel].offset];
- pixel_info->black=0.0;
+ pixel_info->black=0.0f;
if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait)
- pixel_info->black=(double)
+ pixel_info->black=(MagickRealType)
pixel[image->channel_map[BlackPixelChannel].offset];
- pixel_info->alpha=OpaqueAlpha;
+ pixel_info->alpha=(MagickRealType) OpaqueAlpha;
if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait)
- pixel_info->alpha=(double)
+ pixel_info->alpha=(MagickRealType)
pixel[image->channel_map[AlphaPixelChannel].offset];
- pixel_info->index=0.0;
+ pixel_info->index=0.0f;
if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait)
- pixel_info->index=(double)
+ pixel_info->index=(MagickRealType)
pixel[image->channel_map[IndexPixelChannel].offset];
}
return(image->channel_map[YellowPixelChannel].traits);
}
-static inline double AbsolutePixelValue(const double x)
+static inline MagickRealType AbsolutePixelValue(const MagickRealType x)
{
- return(x < 0.0 ? -x : x);
+ return(x < 0.0f ? -x : x);
}
static inline MagickBooleanType IsPixelEquivalent(const Image *restrict image,
const Quantum *restrict p,const PixelInfo *restrict q)
{
- double
+ MagickRealType
blue,
green,
red;
- red=(double) p[image->channel_map[RedPixelChannel].offset];
- green=(double) p[image->channel_map[GreenPixelChannel].offset];
- blue=(double) p[image->channel_map[BluePixelChannel].offset];
+ red=(MagickRealType) p[image->channel_map[RedPixelChannel].offset];
+ green=(MagickRealType) p[image->channel_map[GreenPixelChannel].offset];
+ blue=(MagickRealType) p[image->channel_map[BluePixelChannel].offset];
if ((AbsolutePixelValue(red-q->red) < MagickEpsilon) &&
(AbsolutePixelValue(green-q->green) < MagickEpsilon) &&
(AbsolutePixelValue(blue-q->blue) < MagickEpsilon))
static inline MagickBooleanType IsPixelGray(const Image *restrict image,
const Quantum *restrict pixel)
{
- double
+ MagickRealType
blue,
green,
red;
- red=(double) pixel[image->channel_map[RedPixelChannel].offset];
- green=(double) pixel[image->channel_map[GreenPixelChannel].offset];
- blue=(double) pixel[image->channel_map[BluePixelChannel].offset];
+ red=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset];
+ green=(MagickRealType) pixel[image->channel_map[GreenPixelChannel].offset];
+ blue=(MagickRealType) pixel[image->channel_map[BluePixelChannel].offset];
if ((AbsolutePixelValue(red-green) < MagickEpsilon) &&
(AbsolutePixelValue(green-blue) < MagickEpsilon))
return(MagickTrue);
static inline MagickBooleanType IsPixelMonochrome(const Image *restrict image,
const Quantum *restrict pixel)
{
- double
+ MagickRealType
blue,
green,
red;
- red=(double) pixel[image->channel_map[RedPixelChannel].offset];
+ red=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset];
if ((AbsolutePixelValue(red) >= MagickEpsilon) ||
(AbsolutePixelValue(red-QuantumRange) >= MagickEpsilon))
return(MagickFalse);
- green=(double) pixel[image->channel_map[GreenPixelChannel].offset];
- blue=(double) pixel[image->channel_map[BluePixelChannel].offset];
+ green=(MagickRealType) pixel[image->channel_map[GreenPixelChannel].offset];
+ blue=(MagickRealType) pixel[image->channel_map[BluePixelChannel].offset];
if ((AbsolutePixelValue(red-green) < MagickEpsilon) &&
(AbsolutePixelValue(green-blue) < MagickEpsilon))
return(MagickTrue);