This commit is contained in:
cristy 2012-06-27 12:51:45 +00:00
parent a24b245fac
commit 0a39a5c567
18 changed files with 299 additions and 214 deletions

View file

@ -303,7 +303,7 @@ Magick::ColorHSL::ColorHSL ( double hue_,
{
double red, green, blue;
ConvertHSLTosRGB ( hue_,
ConvertHSLToRGB ( hue_,
saturation_,
luminosity_,
&red,
@ -337,7 +337,7 @@ Magick::ColorHSL::~ColorHSL ( )
void Magick::ColorHSL::hue ( double hue_ )
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,
@ -347,7 +347,7 @@ void Magick::ColorHSL::hue ( double hue_ )
hue_val = hue_;
double red, green, blue;
ConvertHSLTosRGB ( hue_val,
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
&red,
@ -363,7 +363,7 @@ void Magick::ColorHSL::hue ( double hue_ )
double Magick::ColorHSL::hue ( void ) const
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,
@ -375,7 +375,7 @@ double Magick::ColorHSL::hue ( void ) const
void Magick::ColorHSL::saturation ( double saturation_ )
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,
@ -385,7 +385,7 @@ void Magick::ColorHSL::saturation ( double saturation_ )
saturation_val = saturation_;
double red, green, blue;
ConvertHSLTosRGB ( hue_val,
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
&red,
@ -401,7 +401,7 @@ void Magick::ColorHSL::saturation ( double saturation_ )
double Magick::ColorHSL::saturation ( void ) const
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,
@ -413,7 +413,7 @@ double Magick::ColorHSL::saturation ( void ) const
void Magick::ColorHSL::luminosity ( double luminosity_ )
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,
@ -423,7 +423,7 @@ void Magick::ColorHSL::luminosity ( double luminosity_ )
luminosity_val = luminosity_;
double red, green, blue;
ConvertHSLTosRGB ( hue_val,
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
&red,
@ -439,7 +439,7 @@ void Magick::ColorHSL::luminosity ( double luminosity_ )
double Magick::ColorHSL::luminosity ( void ) const
{
double hue_val, saturation_val, luminosity_val;
ConvertsRGBToHSL ( redQuantum(),
ConvertRGBToHSL ( redQuantum(),
greenQuantum(),
blueQuantum(),
&hue_val,

View file

@ -606,8 +606,8 @@ namespace Magick
using MagickCore::ConfigureWarning;
using MagickCore::ConstituteImage;
using MagickCore::ContrastImage;
using MagickCore::ConvertHSLTosRGB;
using MagickCore::ConvertsRGBToHSL;
using MagickCore::ConvertHSLToRGB;
using MagickCore::ConvertRGBToHSL;
using MagickCore::ConvolveImage;
using MagickCore::CopyMagickString;
using MagickCore::CorruptImageError;

View file

@ -2370,16 +2370,16 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
geometry_info.sigma*=scale;
geometry_info.xi*=scale;
if (LocaleCompare(colorspace,"HSB") == 0)
ConvertHSBTosRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
ConvertHSBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
&pixel.green,&pixel.blue);
else
if (LocaleCompare(colorspace,"HSL") == 0)
ConvertHSLTosRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
ConvertHSLToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
&pixel.green,&pixel.blue);
else
ConvertHWBTosRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
ConvertHWBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
&pixel.green,&pixel.blue);
color->colorspace=sRGBColorspace;

View file

@ -27,7 +27,7 @@ extern "C" {
#include <MagickCore/pixel.h>
#include <MagickCore/pixel-accessor.h>
static inline void ConvertsRGBToCMYK(PixelInfo *pixel)
static inline void ConvertRGBToCMYK(PixelInfo *pixel)
{
MagickRealType
black,
@ -38,9 +38,9 @@ static inline void ConvertsRGBToCMYK(PixelInfo *pixel)
red,
yellow;
red=DecompandsRGB(QuantumScale*pixel->red);
green=DecompandsRGB(QuantumScale*pixel->green);
blue=DecompandsRGB(QuantumScale*pixel->blue);
red=QuantumScale*pixel->red;
green=QuantumScale*pixel->green;
blue=QuantumScale*pixel->blue;
if ((fabs(red) < MagickEpsilon) && (fabs(green) < MagickEpsilon) &&
(fabs(blue) < MagickEpsilon))
{

View file

@ -115,7 +115,7 @@ static MagickBooleanType
%
*/
static inline void ConvertsRGBToXYZ(const Quantum red,const Quantum green,
static inline void ConvertRGBToXYZ(const Quantum red,const Quantum green,
const Quantum blue,double *X,double *Y,double *Z)
{
double
@ -126,9 +126,9 @@ static inline void ConvertsRGBToXYZ(const Quantum red,const Quantum green,
assert(X != (double *) NULL);
assert(Y != (double *) NULL);
assert(Z != (double *) NULL);
r=DecompandsRGB(QuantumScale*red);
g=DecompandsRGB(QuantumScale*green);
b=DecompandsRGB(QuantumScale*blue);
r=QuantumScale*red;
g=QuantumScale*green;
b=QuantumScale*blue;
*X=0.4360747*r+0.3850649*g+0.1430804*b;
*Y=0.2225045*r+0.7168786*g+0.0606169*b;
*Z=0.0139322*r+0.0971045*g+0.7141733*b;
@ -332,7 +332,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
for (x=0; x < (ssize_t) image->columns; x++)
{
GetPixelInfoPixel(image,q,&pixel);
ConvertsRGBToCMYK(&pixel);
pixel.red=QuantumRange*DecompandsRGB(QuantumScale*pixel.red);
pixel.green=QuantumRange*DecompandsRGB(QuantumScale*pixel.green);
pixel.blue=QuantumRange*DecompandsRGB(QuantumScale*pixel.blue);
ConvertRGBToCMYK(&pixel);
SetPixelInfoPixel(image,&pixel,q);
q+=GetPixelChannels(image);
}
@ -457,9 +460,15 @@ static MagickBooleanType sRGBTransformImage(Image *image,
brightness=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToHSB((double) GetPixelRed(image,q),
(double) GetPixelGreen(image,q),(double) GetPixelBlue(image,q),
&hue,&saturation,&brightness);
double
blue,
green,
red;
red=QuantumRange*DecompandsRGB(QuantumScale*GetPixelRed(image,q));
green=QuantumRange*DecompandsRGB(QuantumScale*GetPixelGreen(image,q));
blue=QuantumRange*DecompandsRGB(QuantumScale*GetPixelBlue(image,q));
ConvertRGBToHSB(red,green,blue,&hue,&saturation,&brightness);
SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
hue),q);
SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
@ -524,9 +533,15 @@ static MagickBooleanType sRGBTransformImage(Image *image,
lightness=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToHSL((double) GetPixelRed(image,q),(double)
GetPixelGreen(image,q),(double) GetPixelBlue(image,q),
&hue,&saturation,&lightness);
double
blue,
green,
red;
red=QuantumRange*DecompandsRGB(QuantumScale*GetPixelRed(image,q));
green=QuantumRange*DecompandsRGB(QuantumScale*GetPixelGreen(image,q));
blue=QuantumRange*DecompandsRGB(QuantumScale*GetPixelBlue(image,q));
ConvertRGBToHSL(red,green,blue,&hue,&saturation,&lightness);
SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
hue),q);
SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
@ -591,9 +606,15 @@ static MagickBooleanType sRGBTransformImage(Image *image,
blackness=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToHWB((double) GetPixelRed(image,q),(double)
GetPixelGreen(image,q),(double) GetPixelBlue(image,q),
&hue,&whiteness,&blackness);
double
blue,
green,
red;
red=QuantumRange*DecompandsRGB(QuantumScale*GetPixelRed(image,q));
green=QuantumRange*DecompandsRGB(QuantumScale*GetPixelGreen(image,q));
blue=QuantumRange*DecompandsRGB(QuantumScale*GetPixelBlue(image,q));
ConvertRGBToHWB(red,green,blue,&hue,&whiteness,&blackness);
SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
hue),q);
SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
@ -664,8 +685,15 @@ static MagickBooleanType sRGBTransformImage(Image *image,
Z=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToXYZ(GetPixelRed(image,q),GetPixelGreen(image,q),
GetPixelBlue(image,q),&X,&Y,&Z);
double
blue,
green,
red;
red=QuantumRange*DecompandsRGB(QuantumScale*GetPixelRed(image,q));
green=QuantumRange*DecompandsRGB(QuantumScale*GetPixelGreen(image,q));
blue=QuantumRange*DecompandsRGB(QuantumScale*GetPixelBlue(image,q));
ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
ConvertXYZToLab(X,Y,Z,&L,&a,&b);
SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
L),q);
@ -963,8 +991,15 @@ static MagickBooleanType sRGBTransformImage(Image *image,
Z=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToXYZ(GetPixelRed(image,q),GetPixelGreen(image,q),
GetPixelBlue(image,q),&X,&Y,&Z);
double
blue,
green,
red;
red=QuantumRange*DecompandsRGB(QuantumScale*GetPixelRed(image,q));
green=QuantumRange*DecompandsRGB(QuantumScale*GetPixelGreen(image,q));
blue=QuantumRange*DecompandsRGB(QuantumScale*GetPixelBlue(image,q));
ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*X),q);
SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*Y),
q);
@ -1574,8 +1609,8 @@ static inline ssize_t RoundToYCC(const MagickRealType value)
return((ssize_t) (value+0.5));
}
static inline void ConvertXYZTosRGB(const double x,const double y,
const double z,Quantum *red,Quantum *green,Quantum *blue)
static inline void ConvertXYZToRGB(const double x,const double y,
const double z,double *red,double *green,double *blue)
{
double
b,
@ -1585,25 +1620,25 @@ static inline void ConvertXYZTosRGB(const double x,const double y,
/*
Convert XYZ to sRGB colorspace.
*/
assert(red != (Quantum *) NULL);
assert(green != (Quantum *) NULL);
assert(blue != (Quantum *) NULL);
assert(red != (double *) NULL);
assert(green != (double *) NULL);
assert(blue != (double *) NULL);
r=3.1338561*x-1.6168667*y-0.4906146*z;
g=(-0.9787684*x+1.9161415*y+0.0334540*z);
b=0.0719453*x-0.2289914*y+1.4052427*z;
*red=ClampToQuantum((MagickRealType) QuantumRange*CompandsRGB(r));
*green=ClampToQuantum((MagickRealType) QuantumRange*CompandsRGB(g));
*blue=ClampToQuantum((MagickRealType) QuantumRange*CompandsRGB(b));
*red=QuantumRange*r;
*green=QuantumRange*g;
*blue=QuantumRange*b;
}
static inline void ConvertCMYKTosRGB(PixelInfo *pixel)
static inline void ConvertCMYKToRGB(PixelInfo *pixel)
{
pixel->red=QuantumRange*CompandsRGB(QuantumScale*(QuantumRange-
(QuantumScale*pixel->red*(QuantumRange-pixel->black)+pixel->black)));
pixel->green=QuantumRange*CompandsRGB(QuantumScale*(QuantumRange-
(QuantumScale*pixel->green*(QuantumRange-pixel->black)+pixel->black)));
pixel->blue=QuantumRange*CompandsRGB(QuantumScale*(QuantumRange-
(QuantumScale*pixel->blue*(QuantumRange-pixel->black)+pixel->black)));
pixel->red=((QuantumRange-(QuantumScale*pixel->red*
(QuantumRange-pixel->black)+pixel->black)));
pixel->green=((QuantumRange-(QuantumScale*pixel->green*
(QuantumRange-pixel->black)+pixel->black)));
pixel->blue=((QuantumRange-(QuantumScale*pixel->blue*
(QuantumRange-pixel->black)+pixel->black)));
}
static MagickBooleanType TransformsRGBImage(Image *image,
@ -1990,7 +2025,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
for (x=0; x < (ssize_t) image->columns; x++)
{
GetPixelInfoPixel(image,q,&pixel);
ConvertCMYKTosRGB(&pixel);
ConvertCMYKToRGB(&pixel);
pixel.red=QuantumRange*CompandsRGB(QuantumScale*pixel.red);
pixel.green=QuantumRange*CompandsRGB(QuantumScale*pixel.green);
pixel.blue=QuantumRange*CompandsRGB(QuantumScale*pixel.blue);
SetPixelInfoPixel(image,&pixel,q);
q+=GetPixelChannels(image);
}
@ -2084,9 +2122,9 @@ static MagickBooleanType TransformsRGBImage(Image *image,
for (y=0; y < (ssize_t) image->rows; y++)
{
double
brightness,
hue,
saturation;
blue,
green,
red;
MagickBooleanType
sync;
@ -2106,17 +2144,23 @@ static MagickBooleanType TransformsRGBImage(Image *image,
status=MagickFalse;
continue;
}
red=0.0;
green=0.0;
blue=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
double
blue,
green,
red;
brightness,
hue,
saturation;
hue=(double) (QuantumScale*GetPixelRed(image,q));
saturation=(double) (QuantumScale*GetPixelGreen(image,q));
brightness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHSBTosRGB(hue,saturation,brightness,&red,&green,&blue);
ConvertHSBToRGB(hue,saturation,brightness,&red,&green,&blue);
red=QuantumRange*CompandsRGB(QuantumScale*red);
green=QuantumRange*CompandsRGB(QuantumScale*green);
blue=QuantumRange*CompandsRGB(QuantumScale*blue);
SetPixelRed(image,ClampToQuantum(red),q);
SetPixelGreen(image,ClampToQuantum(green),q);
SetPixelBlue(image,ClampToQuantum(blue),q);
@ -2151,9 +2195,9 @@ static MagickBooleanType TransformsRGBImage(Image *image,
for (y=0; y < (ssize_t) image->rows; y++)
{
double
hue,
lightness,
saturation;
blue,
green,
red;
MagickBooleanType
sync;
@ -2173,17 +2217,23 @@ static MagickBooleanType TransformsRGBImage(Image *image,
status=MagickFalse;
continue;
}
red=0.0;
green=0.0;
blue=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
double
blue,
green,
red;
hue,
lightness,
saturation;
hue=(double) (QuantumScale*GetPixelRed(image,q));
saturation=(double) (QuantumScale*GetPixelGreen(image,q));
lightness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHSLTosRGB(hue,saturation,lightness,&red,&green,&blue);
ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
red=QuantumRange*CompandsRGB(QuantumScale*red);
green=QuantumRange*CompandsRGB(QuantumScale*green);
blue=QuantumRange*CompandsRGB(QuantumScale*blue);
SetPixelRed(image,ClampToQuantum(red),q);
SetPixelGreen(image,ClampToQuantum(green),q);
SetPixelBlue(image,ClampToQuantum(blue),q);
@ -2218,9 +2268,9 @@ static MagickBooleanType TransformsRGBImage(Image *image,
for (y=0; y < (ssize_t) image->rows; y++)
{
double
blackness,
hue,
whiteness;
blue,
green,
red;
MagickBooleanType
sync;
@ -2240,17 +2290,23 @@ static MagickBooleanType TransformsRGBImage(Image *image,
status=MagickFalse;
continue;
}
red=0.0;
green=0.0;
blue=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
double
blue,
green,
red;
blackness,
hue,
whiteness;
hue=(double) (QuantumScale*GetPixelRed(image,q));
whiteness=(double) (QuantumScale*GetPixelGreen(image,q));
blackness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHWBTosRGB(hue,whiteness,blackness,&red,&green,&blue);
ConvertHWBToRGB(hue,whiteness,blackness,&red,&green,&blue);
red=QuantumRange*CompandsRGB(QuantumScale*red);
green=QuantumRange*CompandsRGB(QuantumScale*green);
blue=QuantumRange*CompandsRGB(QuantumScale*blue);
SetPixelRed(image,ClampToQuantum(red),q);
SetPixelGreen(image,ClampToQuantum(green),q);
SetPixelBlue(image,ClampToQuantum(blue),q);
@ -2285,13 +2341,16 @@ static MagickBooleanType TransformsRGBImage(Image *image,
for (y=0; y < (ssize_t) image->rows; y++)
{
double
a,
b,
L,
X,
Y,
Z;
double
blue,
green,
red;
MagickBooleanType
sync;
@ -2313,18 +2372,24 @@ static MagickBooleanType TransformsRGBImage(Image *image,
X=0.0;
Y=0.0;
Z=0.0;
red=0.0;
green=0.0;
blue=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
Quantum
blue,
green,
red;
double
a,
b,
L;
L=QuantumScale*GetPixelRed(image,q);
a=QuantumScale*GetPixelGreen(image,q);
b=QuantumScale*GetPixelBlue(image,q);
ConvertLabToXYZ(L,a,b,&X,&Y,&Z);
ConvertXYZTosRGB(X,Y,Z,&red,&green,&blue);
ConvertXYZToRGB(X,Y,Z,&red,&green,&blue);
red=QuantumRange*CompandsRGB(QuantumScale*red);
green=QuantumRange*CompandsRGB(QuantumScale*green);
blue=QuantumRange*CompandsRGB(QuantumScale*blue);
SetPixelRed(image,red,q);
SetPixelGreen(image,green,q);
SetPixelBlue(image,blue,q);
@ -2530,6 +2595,11 @@ static MagickBooleanType TransformsRGBImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
double
blue,
green,
red;
MagickBooleanType
sync;
@ -2548,6 +2618,9 @@ static MagickBooleanType TransformsRGBImage(Image *image,
status=MagickFalse;
continue;
}
red=0.0;
green=0.0;
blue=0.0;
for (x=0; x < (ssize_t) image->columns; x++)
{
double
@ -2555,15 +2628,13 @@ static MagickBooleanType TransformsRGBImage(Image *image,
Y,
Z;
Quantum
blue,
green,
red;
X=QuantumScale*GetPixelRed(image,q);
Y=QuantumScale*GetPixelGreen(image,q);
Z=QuantumScale*GetPixelBlue(image,q);
ConvertXYZTosRGB(X,Y,Z,&red,&green,&blue);
ConvertXYZToRGB(X,Y,Z,&red,&green,&blue);
red=QuantumRange*CompandsRGB(QuantumScale*red);
green=QuantumRange*CompandsRGB(QuantumScale*green);
blue=QuantumRange*CompandsRGB(QuantumScale*blue);
SetPixelRed(image,red,q);
SetPixelGreen(image,green,q);
SetPixelBlue(image,blue,q);

View file

@ -2376,7 +2376,7 @@ MagickExport Image *DistortImage(const Image *image,DistortImageMethod method,
invalid=distort_image->matte_color;
if (distort_image->colorspace == CMYKColorspace)
ConvertsRGBToCMYK(&invalid); /* what about other color spaces? */
ConvertRGBToCMYK(&invalid); /* what about other color spaces? */
for (i=0; i < (ssize_t) distort_image->columns; i++)
{
/* map pixel coordinate to distortion space coordinate */

View file

@ -856,7 +856,7 @@ static void Contrast(const int sign,double *red,double *green,double *blue)
hue=0.0;
saturation=0.0;
brightness=0.0;
ConvertsRGBToHSB(*red,*green,*blue,&hue,&saturation,&brightness);
ConvertRGBToHSB(*red,*green,*blue,&hue,&saturation,&brightness);
brightness+=0.5*sign*(0.5*(sin((double) (MagickPI*(brightness-0.5)))+1.0)-
brightness);
if (brightness > 1.0)
@ -864,7 +864,7 @@ static void Contrast(const int sign,double *red,double *green,double *blue)
else
if (brightness < 0.0)
brightness=0.0;
ConvertHSBTosRGB(hue,saturation,brightness,red,green,blue);
ConvertHSBToRGB(hue,saturation,brightness,red,green,blue);
}
MagickExport MagickBooleanType ContrastImage(Image *image,
@ -2777,7 +2777,7 @@ static void ModulateHSB(const double percent_hue,
assert(red != (double *) NULL);
assert(green != (double *) NULL);
assert(blue != (double *) NULL);
ConvertsRGBToHSB(*red,*green,*blue,&hue,&saturation,&brightness);
ConvertRGBToHSB(*red,*green,*blue,&hue,&saturation,&brightness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
hue+=1.0;
@ -2785,7 +2785,7 @@ static void ModulateHSB(const double percent_hue,
hue-=1.0;
saturation*=0.01*percent_saturation;
brightness*=0.01*percent_brightness;
ConvertHSBTosRGB(hue,saturation,brightness,red,green,blue);
ConvertHSBToRGB(hue,saturation,brightness,red,green,blue);
}
static void ModulateHSL(const double percent_hue,
@ -2803,7 +2803,7 @@ static void ModulateHSL(const double percent_hue,
assert(red != (double *) NULL);
assert(green != (double *) NULL);
assert(blue != (double *) NULL);
ConvertsRGBToHSL(*red,*green,*blue,&hue,&saturation,&lightness);
ConvertRGBToHSL(*red,*green,*blue,&hue,&saturation,&lightness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
hue+=1.0;
@ -2811,7 +2811,7 @@ static void ModulateHSL(const double percent_hue,
hue-=1.0;
saturation*=0.01*percent_saturation;
lightness*=0.01*percent_lightness;
ConvertHSLTosRGB(hue,saturation,lightness,red,green,blue);
ConvertHSLToRGB(hue,saturation,lightness,red,green,blue);
}
static void ModulateHWB(const double percent_hue,const double percent_whiteness, const double percent_blackness,double *red,double *green,double *blue)
@ -2827,7 +2827,7 @@ static void ModulateHWB(const double percent_hue,const double percent_whiteness,
assert(red != (double *) NULL);
assert(green != (double *) NULL);
assert(blue != (double *) NULL);
ConvertsRGBToHWB(*red,*green,*blue,&hue,&whiteness,&blackness);
ConvertRGBToHWB(*red,*green,*blue,&hue,&whiteness,&blackness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
hue+=1.0;
@ -2835,7 +2835,7 @@ static void ModulateHWB(const double percent_hue,const double percent_whiteness,
hue-=1.0;
blackness*=0.01*percent_blackness;
whiteness*=0.01*percent_whiteness;
ConvertHWBTosRGB(hue,whiteness,blackness,red,green,blue);
ConvertHWBToRGB(hue,whiteness,blackness,red,green,blue);
}
MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
@ -2853,9 +2853,12 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
*artifact;
double
blue,
green,
percent_brightness,
percent_hue,
percent_saturation;
percent_saturation,
red;
GeometryInfo
geometry_info;
@ -2884,7 +2887,7 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (modulate == (char *) NULL)
return(MagickFalse);
if (IssRGBColorspace(image->colorspace) == MagickFalse)
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace,exception);
flags=ParseGeometry(modulate,&geometry_info);
percent_brightness=geometry_info.rho;
@ -2909,31 +2912,33 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
dynamic_number_threads(image,image->columns,1,1)
#endif
for (i=0; i < (ssize_t) image->colors; i++)
{
red=image->colormap[i].red;
green=image->colormap[i].green;
blue=image->colormap[i].blue;
switch (colorspace)
{
case HSBColorspace:
{
ModulateHSB(percent_hue,percent_saturation,percent_brightness,
&image->colormap[i].red,&image->colormap[i].green,
&image->colormap[i].blue);
&red,&green,&blue);
break;
}
case HSLColorspace:
default:
{
ModulateHSL(percent_hue,percent_saturation,percent_brightness,
&image->colormap[i].red,&image->colormap[i].green,
&image->colormap[i].blue);
&red,&green,&blue);
break;
}
case HWBColorspace:
{
ModulateHWB(percent_hue,percent_saturation,percent_brightness,
&image->colormap[i].red,&image->colormap[i].green,
&image->colormap[i].blue);
&red,&green,&blue);
break;
}
}
}
}
/*
Modulate image.
@ -2947,11 +2952,6 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
double
blue,
green,
red;
register Quantum
*restrict q;

View file

@ -1651,7 +1651,7 @@ static MagickRealType FxGetSymbol(FxInfo *fx_info,const PixelChannel channel,
lightness,
saturation;
ConvertsRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
ConvertRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
&lightness);
return(hue);
}
@ -1695,7 +1695,7 @@ static MagickRealType FxGetSymbol(FxInfo *fx_info,const PixelChannel channel,
lightness,
saturation;
ConvertsRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
ConvertRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
&lightness);
return(lightness);
}
@ -1770,7 +1770,7 @@ static MagickRealType FxGetSymbol(FxInfo *fx_info,const PixelChannel channel,
lightness,
saturation;
ConvertsRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
ConvertRGBToHSL(pixel.red,pixel.green,pixel.blue,&hue,&saturation,
&lightness);
return(saturation);
}

View file

@ -32,13 +32,13 @@ extern MagickPrivate size_t
GetOptimalKernelWidth2D(const double,const double);
extern MagickPrivate void
ConvertHSBTosRGB(const double,const double,const double,double *,double *,
ConvertHSBToRGB(const double,const double,const double,double *,double *,
double *),
ConvertHWBTosRGB(const double,const double,const double,double *,double *,
ConvertHWBToRGB(const double,const double,const double,double *,double *,
double *),
ConvertsRGBToHSB(const double,const double,const double,double *,double *,
ConvertRGBToHSB(const double,const double,const double,double *,double *,
double *),
ConvertsRGBToHWB(const double,const double,const double,double *,double *,
ConvertRGBToHWB(const double,const double,const double,double *,double *,
double *);
#if defined(__cplusplus) || defined(c_plusplus)

View file

@ -63,18 +63,18 @@
% %
% %
% %
% C o n v e r t H S B T o s R G B %
% C o n v e r t H S B T o R G B %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertHSBTosRGB() transforms a (hue, saturation, brightness) to a (red,
% ConvertHSBToRGB() transforms a (hue, saturation, brightness) to a (red,
% green, blue) triple.
%
% The format of the ConvertHSBTosRGBImage method is:
% The format of the ConvertHSBToRGBImage method is:
%
% void ConvertHSBTosRGB(const double hue,const double saturation,
% void ConvertHSBToRGB(const double hue,const double saturation,
% const double brightness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
@ -85,7 +85,7 @@
% o red, green, blue: A pointer to a pixel component of type Quantum.
%
*/
MagickPrivate void ConvertHSBTosRGB(const double hue,const double saturation,
MagickPrivate void ConvertHSBToRGB(const double hue,const double saturation,
const double brightness,double *red,double *green,double *blue)
{
double
@ -118,44 +118,44 @@ MagickPrivate void ConvertHSBTosRGB(const double hue,const double saturation,
case 0:
default:
{
*red=QuantumRange*CompandsRGB(brightness);
*green=QuantumRange*CompandsRGB(t);
*blue=QuantumRange*CompandsRGB(p);
*red=QuantumRange*brightness;
*green=QuantumRange*t;
*blue=QuantumRange*p;
break;
}
case 1:
{
*red=QuantumRange*CompandsRGB(q);
*green=QuantumRange*CompandsRGB(brightness);
*blue=QuantumRange*CompandsRGB(p);
*red=QuantumRange*q;
*green=QuantumRange*brightness;
*blue=QuantumRange*p;
break;
}
case 2:
{
*red=QuantumRange*CompandsRGB(p);
*green=QuantumRange*CompandsRGB(brightness);
*blue=QuantumRange*CompandsRGB(t);
*red=QuantumRange*p;
*green=QuantumRange*brightness;
*blue=QuantumRange*t;
break;
}
case 3:
{
*red=QuantumRange*CompandsRGB(p);
*green=QuantumRange*CompandsRGB(q);
*blue=QuantumRange*CompandsRGB(brightness);
*red=QuantumRange*p;
*green=QuantumRange*q;
*blue=QuantumRange*brightness;
break;
}
case 4:
{
*red=QuantumRange*CompandsRGB(t);
*green=QuantumRange*CompandsRGB(p);
*blue=QuantumRange*CompandsRGB(brightness);
*red=QuantumRange*t;
*green=QuantumRange*p;
*blue=QuantumRange*brightness;
break;
}
case 5:
{
*red=QuantumRange*CompandsRGB(brightness);
*green=QuantumRange*CompandsRGB(p);
*blue=QuantumRange*CompandsRGB(q);
*red=QuantumRange*brightness;
*green=QuantumRange*p;
*blue=QuantumRange*q;
break;
}
}
@ -166,18 +166,18 @@ MagickPrivate void ConvertHSBTosRGB(const double hue,const double saturation,
% %
% %
% %
% C o n v e r t H S L T o s R G B %
% C o n v e r t H S L T o R G B %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertHSLTosRGB() transforms a (hue, saturation, lightness) to a (red,
% ConvertHSLToRGB() transforms a (hue, saturation, lightness) to a (red,
% green, blue) triple.
%
% The format of the ConvertHSLTosRGBImage method is:
% The format of the ConvertHSLToRGBImage method is:
%
% void ConvertHSLTosRGB(const double hue,const double saturation,
% void ConvertHSLToRGB(const double hue,const double saturation,
% const double lightness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
@ -189,7 +189,7 @@ MagickPrivate void ConvertHSBTosRGB(const double hue,const double saturation,
%
*/
static inline double ConvertHueTosRGB(double m1,double m2,double hue)
static inline double ConvertHueToRGB(double m1,double m2,double hue)
{
if (hue < 0.0)
hue+=1.0;
@ -204,7 +204,7 @@ static inline double ConvertHueTosRGB(double m1,double m2,double hue)
return(m1);
}
MagickExport void ConvertHSLTosRGB(const double hue,const double saturation,
MagickExport void ConvertHSLToRGB(const double hue,const double saturation,
const double lightness,double *red,double *green,double *blue)
{
double
@ -232,12 +232,12 @@ MagickExport void ConvertHSLTosRGB(const double hue,const double saturation,
else
m2=(lightness+saturation)-(lightness*saturation);
m1=2.0*lightness-m2;
r=ConvertHueTosRGB(m1,m2,hue+1.0/3.0);
g=ConvertHueTosRGB(m1,m2,hue);
b=ConvertHueTosRGB(m1,m2,hue-1.0/3.0);
*red=QuantumRange*CompandsRGB(r);
*green=QuantumRange*CompandsRGB(g);
*blue=QuantumRange*CompandsRGB(b);
r=ConvertHueToRGB(m1,m2,hue+1.0/3.0);
g=ConvertHueToRGB(m1,m2,hue);
b=ConvertHueToRGB(m1,m2,hue-1.0/3.0);
*red=QuantumRange*r;
*green=QuantumRange*g;
*blue=QuantumRange*b;
}
/*
@ -245,18 +245,18 @@ MagickExport void ConvertHSLTosRGB(const double hue,const double saturation,
% %
% %
% %
% C o n v e r t H W B T o s R G B %
% C o n v e r t H W B T o R G B %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertHWBTosRGB() transforms a (hue, whiteness, blackness) to a (red, green,
% ConvertHWBToRGB() transforms a (hue, whiteness, blackness) to a (red, green,
% blue) triple.
%
% The format of the ConvertHWBTosRGBImage method is:
% The format of the ConvertHWBToRGBImage method is:
%
% void ConvertHWBTosRGB(const double hue,const double whiteness,
% void ConvertHWBToRGB(const double hue,const double whiteness,
% const double blackness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
@ -267,7 +267,7 @@ MagickExport void ConvertHSLTosRGB(const double hue,const double saturation,
% o red, green, blue: A pointer to a pixel component of type Quantum.
%
*/
MagickPrivate void ConvertHWBTosRGB(const double hue,const double whiteness,
MagickPrivate void ConvertHWBToRGB(const double hue,const double whiteness,
const double blackness,double *red,double *green,double *blue)
{
double
@ -290,9 +290,9 @@ MagickPrivate void ConvertHWBTosRGB(const double hue,const double whiteness,
v=1.0-blackness;
if (hue == -1.0)
{
*red=QuantumRange*CompandsRGB(v);
*green=QuantumRange*CompandsRGB(v);
*blue=QuantumRange*CompandsRGB(v);
*red=QuantumRange*v;
*green=QuantumRange*v;
*blue=QuantumRange*v;
return;
}
i=(ssize_t) floor(6.0*hue);
@ -311,9 +311,9 @@ MagickPrivate void ConvertHWBTosRGB(const double hue,const double whiteness,
case 4: r=n; g=whiteness; b=v; break;
case 5: r=v; g=whiteness; b=n; break;
}
*red=QuantumRange*CompandsRGB(r);
*green=QuantumRange*CompandsRGB(g);
*blue=QuantumRange*CompandsRGB(b);
*red=QuantumRange*r;
*green=QuantumRange*g;
*blue=QuantumRange*b;
}
/*
@ -321,18 +321,18 @@ MagickPrivate void ConvertHWBTosRGB(const double hue,const double whiteness,
% %
% %
% %
% C o n v e r t s R G B T o H S B %
% C o n v e r t R G B T o H S B %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertsRGBToHSB() transforms a (red, green, blue) to a (hue, saturation,
% ConvertRGBToHSB() transforms a (red, green, blue) to a (hue, saturation,
% brightness) triple.
%
% The format of the ConvertsRGBToHSB method is:
% The format of the ConvertRGBToHSB method is:
%
% void ConvertsRGBToHSB(const double red,const double green,
% void ConvertRGBToHSB(const double red,const double green,
% const double blue,double *hue,double *saturation,double *brightness)
%
% A description of each parameter follows:
@ -344,7 +344,7 @@ MagickPrivate void ConvertHWBTosRGB(const double hue,const double whiteness,
% component of the HSB color space.
%
*/
MagickPrivate void ConvertsRGBToHSB(const double red,const double green,
MagickPrivate void ConvertRGBToHSB(const double red,const double green,
const double blue,double *hue,double *saturation,double *brightness)
{
double
@ -364,9 +364,9 @@ MagickPrivate void ConvertsRGBToHSB(const double red,const double green,
*hue=0.0;
*saturation=0.0;
*brightness=0.0;
r=QuantumRange*DecompandsRGB(QuantumScale*red);
g=QuantumRange*DecompandsRGB(QuantumScale*green);
b=QuantumRange*DecompandsRGB(QuantumScale*blue);
r=red;
g=green;
b=blue;
min=r < g ? r : g;
if (b < min)
min=b;
@ -397,18 +397,18 @@ MagickPrivate void ConvertsRGBToHSB(const double red,const double green,
% %
% %
% %
% C o n v e r t s R G B T o H S L %
% C o n v e r t R G B T o H S L %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertsRGBToHSL() transforms a (red, green, blue) to a (hue, saturation,
% ConvertRGBToHSL() transforms a (red, green, blue) to a (hue, saturation,
% lightness) triple.
%
% The format of the ConvertsRGBToHSL method is:
% The format of the ConvertRGBToHSL method is:
%
% void ConvertsRGBToHSL(const double red,const double green,
% void ConvertRGBToHSL(const double red,const double green,
% const double blue,double *hue,double *saturation,double *lightness)
%
% A description of each parameter follows:
@ -435,7 +435,7 @@ static inline double MagickMin(const double x,const double y)
return(y);
}
MagickExport void ConvertsRGBToHSL(const double red,const double green,
MagickExport void ConvertRGBToHSL(const double red,const double green,
const double blue,double *hue,double *saturation,double *lightness)
{
double
@ -452,9 +452,9 @@ MagickExport void ConvertsRGBToHSL(const double red,const double green,
assert(hue != (double *) NULL);
assert(saturation != (double *) NULL);
assert(lightness != (double *) NULL);
r=DecompandsRGB(QuantumScale*red);
g=DecompandsRGB(QuantumScale*green);
b=DecompandsRGB(QuantumScale*blue);
r=QuantumScale*red;
g=QuantumScale*green;
b=QuantumScale*blue;
max=MagickMax(r,MagickMax(g,b));
min=MagickMin(r,MagickMin(g,b));
*lightness=(double) ((min+max)/2.0);
@ -490,18 +490,18 @@ MagickExport void ConvertsRGBToHSL(const double red,const double green,
% %
% %
% %
% C o n v e r t s R G B T o H W B %
% C o n v e r t R G B T o H W B %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ConvertsRGBToHWB() transforms a (red, green, blue) to a (hue, whiteness,
% ConvertRGBToHWB() transforms a (red, green, blue) to a (hue, whiteness,
% blackness) triple.
%
% The format of the ConvertsRGBToHWB method is:
% The format of the ConvertRGBToHWB method is:
%
% void ConvertsRGBToHWB(const double red,const double green,
% void ConvertRGBToHWB(const double red,const double green,
% const double blue,double *hue,double *whiteness,double *blackness)
%
% A description of each parameter follows:
@ -513,7 +513,7 @@ MagickExport void ConvertsRGBToHSL(const double red,const double green,
% component of the HWB color space.
%
*/
MagickPrivate void ConvertsRGBToHWB(const double red,const double green,
MagickPrivate void ConvertRGBToHWB(const double red,const double green,
const double blue,double *hue,double *whiteness,double *blackness)
{
double
@ -531,9 +531,9 @@ MagickPrivate void ConvertsRGBToHWB(const double red,const double green,
assert(hue != (double *) NULL);
assert(whiteness != (double *) NULL);
assert(blackness != (double *) NULL);
r=QuantumRange*DecompandsRGB(QuantumScale*red);
g=QuantumRange*DecompandsRGB(QuantumScale*green);
b=QuantumRange*DecompandsRGB(QuantumScale*blue);
r=red;
g=green;
b=blue;
w=MagickMin(r,MagickMin(g,b));
v=MagickMax(r,MagickMax(g,b));
*blackness=1.0-QuantumScale*v;

View file

@ -29,9 +29,9 @@ extern MagickExport double
ExpandAffine(const AffineMatrix *);
extern MagickExport void
ConvertHSLTosRGB(const double,const double,const double,double *,double *,
ConvertHSLToRGB(const double,const double,const double,double *,double *,
double *),
ConvertsRGBToHSL(const double,const double,const double,double *,double *,
ConvertRGBToHSL(const double,const double,const double,double *,double *,
double *);
#if defined(__cplusplus) || defined(c_plusplus)

View file

@ -12,7 +12,9 @@
/* #undef AUTOTRACE_DELEGATE */
/* Define if coders and filters are to be built as modules. */
/* #undef BUILD_MODULES */
#ifndef MAGICKCORE_BUILD_MODULES
#define MAGICKCORE_BUILD_MODULES 1
#endif
/* Define if you have the bzip2 library */
#ifndef MAGICKCORE_BZLIB_DELEGATE
@ -106,9 +108,7 @@
/* #undef GS_DELEGATE */
/* Define if you have GVC library */
#ifndef MAGICKCORE_GVC_DELEGATE
#define MAGICKCORE_GVC_DELEGATE 1
#endif
/* #undef GVC_DELEGATE */
/* Define to 1 if you have the `acosh' function. */
#ifndef MAGICKCORE_HAVE_ACOSH
@ -219,7 +219,9 @@
#endif
/* Define to 1 if you have the <CL/cl.h> header file. */
/* #undef HAVE_CL_CL_H */
#ifndef MAGICKCORE_HAVE_CL_CL_H
#define MAGICKCORE_HAVE_CL_CL_H 1
#endif
/* Define to 1 if you have the <complex.h> header file. */
#ifndef MAGICKCORE_HAVE_COMPLEX_H
@ -1188,7 +1190,9 @@
#endif
/* Define if you have JBIG library */
/* #undef JBIG_DELEGATE */
#ifndef MAGICKCORE_JBIG_DELEGATE
#define MAGICKCORE_JBIG_DELEGATE 1
#endif
/* Define if you have JPEG version 2 "Jasper" library */
#ifndef MAGICKCORE_JP2_DELEGATE
@ -1229,7 +1233,7 @@
/* Define to the system default library search path. */
#ifndef MAGICKCORE_LT_DLSEARCH_PATH
#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib64/freetype-freeworld:/usr/lib/llvm:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/nvidia:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib64/tracker-0.14:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/usr/local/cuda/lib64:/usr/local/cuda/lib:/usr/lib/llvm:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/nvidia:/usr/lib64/openmotif:/usr/lib64/qt-3.3/lib:/usr/lib64/tracker-0.14:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
#endif
/* The archive extension */
@ -1263,9 +1267,7 @@
/* #undef LT_SHARED_EXT */
/* Define if you have LZMA library */
#ifndef MAGICKCORE_LZMA_DELEGATE
#define MAGICKCORE_LZMA_DELEGATE 1
#endif
/* #undef LZMA_DELEGATE */
/* Define to prepend to default font search path. */
/* #undef MAGICK_FONT_PATH */
@ -1355,7 +1357,9 @@
#endif
/* Define if you have RSVG library */
/* #undef RSVG_DELEGATE */
#ifndef MAGICKCORE_RSVG_DELEGATE
#define MAGICKCORE_RSVG_DELEGATE 1
#endif
/* Define to the type of arg 1 for `select'. */
#ifndef MAGICKCORE_SELECT_TYPE_ARG1
@ -1513,7 +1517,9 @@
#endif
/* Define if you have WEBP library */
/* #undef WEBP_DELEGATE */
#ifndef MAGICKCORE_WEBP_DELEGATE
#define MAGICKCORE_WEBP_DELEGATE 1
#endif
/* Define to use the Windows GDI32 library */
/* #undef WINGDI32_DELEGATE */
@ -1586,7 +1592,9 @@
/* #undef _MINIX */
/* Define this for the OpenCL Accelerator */
/* #undef _OPENCL */
#ifndef MAGICKCORE__OPENCL
#define MAGICKCORE__OPENCL 1
#endif
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */

View file

@ -209,12 +209,12 @@ extern "C" {
#define ContrastImage PrependMagickMethod(ContrastImage)
#define ContrastStretchImage PrependMagickMethod(ContrastStretchImage)
#define ContrastStretchImage PrependMagickMethod(ContrastStretchImage)
#define ConvertHSBTosRGB PrependMagickMethod(ConvertHSBTosRGB)
#define ConvertHSLTosRGB PrependMagickMethod(ConvertHSLTosRGB)
#define ConvertHWBTosRGB PrependMagickMethod(ConvertHWBTosRGB)
#define ConvertsRGBToHSB PrependMagickMethod(ConvertsRGBToHSB)
#define ConvertsRGBToHSL PrependMagickMethod(ConvertsRGBToHSL)
#define ConvertsRGBToHWB PrependMagickMethod(ConvertsRGBToHWB)
#define ConvertHSBToRGB PrependMagickMethod(ConvertHSBToRGB)
#define ConvertHSLToRGB PrependMagickMethod(ConvertHSLToRGB)
#define ConvertHWBToRGB PrependMagickMethod(ConvertHWBToRGB)
#define ConvertRGBToHSB PrependMagickMethod(ConvertRGBToHSB)
#define ConvertRGBToHSL PrependMagickMethod(ConvertRGBToHSL)
#define ConvertRGBToHWB PrependMagickMethod(ConvertRGBToHWB)
#define ConvolveImage PrependMagickMethod(ConvolveImage)
#define ConvolveImage PrependMagickMethod(ConvolveImage)
#define CopyMagickMemory PrependMagickMethod(CopyMagickMemory)

View file

@ -27,14 +27,14 @@ extern "C" {
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2012 ImageMagick Studio LLC"
#define MagickSVNRevision "8354"
#define MagickSVNRevision ""
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 7,0,0
#define MagickLibAddendum "-0"
#define MagickLibInterface 7
#define MagickLibMinInterface 7
#define MagickReleaseDate "2012-06-20"
#define MagickReleaseDate "2012-06-27"
#define MagickChangeDate "20110801"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#if defined(MAGICKCORE_OPENMP_SUPPORT)

View file

@ -1067,7 +1067,7 @@ WandExport void PixelGetHSL(const PixelWand *wand,double *hue,
assert(wand->signature == WandSignature);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
ConvertsRGBToHSL((double) ClampToQuantum(wand->pixel.red),(double)
ConvertRGBToHSL((double) ClampToQuantum(wand->pixel.red),(double)
ClampToQuantum(wand->pixel.green),(double) ClampToQuantum(wand->pixel.blue),
hue,saturation,lightness);
}
@ -1976,7 +1976,7 @@ WandExport void PixelSetHSL(PixelWand *wand,const double hue,
assert(wand->signature == WandSignature);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
ConvertHSLTosRGB(hue,saturation,lightness,&red,&green,&blue);
ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
wand->pixel.red=(MagickRealType) red;
wand->pixel.green=(MagickRealType) green;
wand->pixel.blue=(MagickRealType) blue;

View file

@ -130,7 +130,7 @@ static Image *ReadNULLImage(const ImageInfo *image_info,
GetPixelInfo(image,&background);
background.alpha=(MagickRealType) TransparentAlpha;
if (image->colorspace == CMYKColorspace)
ConvertsRGBToCMYK(&background);
ConvertRGBToCMYK(&background);
for (y=0; y < (ssize_t) image->rows; y++)
{
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);

View file

@ -293,7 +293,9 @@ static MagickBooleanType IsPDFRendered(const char *path)
static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
#define CMYKProcessColor "CMYKProcessColor"
#define CropBox "CropBox"
#define DefaultCMYK "DefaultCMYK"
#define DeviceCMYK "DeviceCMYK"
#define MediaBox "MediaBox"
#define RenderPostscriptText "Rendering Postscript... "
@ -453,8 +455,12 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Is this a CMYK document?
*/
if (LocaleNCompare(DefaultCMYK,command,strlen(DefaultCMYK)) == 0)
cmyk=MagickTrue;
if (LocaleNCompare(DeviceCMYK,command,strlen(DeviceCMYK)) == 0)
cmyk=MagickTrue;
if (LocaleNCompare(CMYKProcessColor,command,strlen(CMYKProcessColor)) == 0)
cmyk=MagickTrue;
if (LocaleNCompare(SpotColor,command,strlen(SpotColor)) == 0)
{
char

View file

@ -166,7 +166,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
ConvertsRGBToHSL(GetPixelRed(image,p),GetPixelGreen(image,p),
ConvertRGBToHSL(GetPixelRed(image,p),GetPixelGreen(image,p),
GetPixelBlue(image,p),&hue,&saturation,&brightness);
brightness*=QuantumRange;
brightness_sum_x+=brightness;