From: cristy Date: Sat, 4 May 2013 20:19:06 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~3739 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f147a5236a7d01b17d36afd5e15fd29679f3addf;p=imagemagick --- diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index 46bf7a4d5..326af60d1 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -356,10 +356,10 @@ static MagickBooleanType sRGBTransformImage(Image *image, image->type=GrayscaleType; return(status); } - case HCLColorspace: + case HSIColorspace: { /* - Transform image from sRGB to HCL. + Transform image from sRGB to target colorspace. */ if (image->storage_class == PseudoClass) { @@ -397,19 +397,28 @@ static MagickBooleanType sRGBTransformImage(Image *image, { double blue, - chroma, green, - hue, - luma, - red; + red, + X, + Y, + Z; red=(double) GetPixelRed(image,q); green=(double) GetPixelGreen(image,q); blue=(double) GetPixelBlue(image,q); - ConvertRGBToHCL(red,green,blue,&hue,&chroma,&luma); - SetPixelRed(image,ClampToQuantum(QuantumRange*hue),q); - SetPixelGreen(image,ClampToQuantum(QuantumRange*chroma),q); - SetPixelBlue(image,ClampToQuantum(QuantumRange*luma),q); + switch (colorspace) + { + case HSIColorspace: + { + ConvertRGBToHSI(red,green,blue,&X,&Y,&Z); + break; + } + default: + break; + } + SetPixelRed(image,ClampToQuantum(QuantumRange*X),q); + SetPixelGreen(image,ClampToQuantum(QuantumRange*Y),q); + SetPixelBlue(image,ClampToQuantum(QuantumRange*Z),q); q+=GetPixelChannels(image); } sync=SyncCacheViewAuthenticPixels(image_view,exception); @@ -421,10 +430,10 @@ static MagickBooleanType sRGBTransformImage(Image *image, return(MagickFalse); return(status); } - case HCLpColorspace: + case HCLColorspace: { /* - Transform image from sRGB to HCLp. + Transform image from sRGB to HCL. */ if (image->storage_class == PseudoClass) { @@ -471,7 +480,7 @@ static MagickBooleanType sRGBTransformImage(Image *image, red=(double) GetPixelRed(image,q); green=(double) GetPixelGreen(image,q); blue=(double) GetPixelBlue(image,q); - ConvertRGBToHCLp(red,green,blue,&hue,&chroma,&luma); + ConvertRGBToHCL(red,green,blue,&hue,&chroma,&luma); SetPixelRed(image,ClampToQuantum(QuantumRange*hue),q); SetPixelGreen(image,ClampToQuantum(QuantumRange*chroma),q); SetPixelBlue(image,ClampToQuantum(QuantumRange*luma),q); @@ -486,10 +495,10 @@ static MagickBooleanType sRGBTransformImage(Image *image, return(MagickFalse); return(status); } - case HSBColorspace: + case HCLpColorspace: { /* - Transform image from sRGB to HSB. + Transform image from sRGB to HCLp. */ if (image->storage_class == PseudoClass) { @@ -527,19 +536,19 @@ static MagickBooleanType sRGBTransformImage(Image *image, { double blue, - brightness, + chroma, green, hue, - red, - saturation; + luma, + red; red=(double) GetPixelRed(image,q); green=(double) GetPixelGreen(image,q); blue=(double) GetPixelBlue(image,q); - ConvertRGBToHSB(red,green,blue,&hue,&saturation,&brightness); + ConvertRGBToHCLp(red,green,blue,&hue,&chroma,&luma); SetPixelRed(image,ClampToQuantum(QuantumRange*hue),q); - SetPixelGreen(image,ClampToQuantum(QuantumRange*saturation),q); - SetPixelBlue(image,ClampToQuantum(QuantumRange*brightness),q); + SetPixelGreen(image,ClampToQuantum(QuantumRange*chroma),q); + SetPixelBlue(image,ClampToQuantum(QuantumRange*luma),q); q+=GetPixelChannels(image); } sync=SyncCacheViewAuthenticPixels(image_view,exception); @@ -551,10 +560,10 @@ static MagickBooleanType sRGBTransformImage(Image *image, return(MagickFalse); return(status); } - case HSIColorspace: + case HSBColorspace: { /* - Transform image from sRGB to HSI. + Transform image from sRGB to HSB. */ if (image->storage_class == PseudoClass) { @@ -592,19 +601,19 @@ static MagickBooleanType sRGBTransformImage(Image *image, { double blue, + brightness, green, hue, - intensity, red, saturation; red=(double) GetPixelRed(image,q); green=(double) GetPixelGreen(image,q); blue=(double) GetPixelBlue(image,q); - ConvertRGBToHSI(red,green,blue,&hue,&saturation,&intensity); + ConvertRGBToHSB(red,green,blue,&hue,&saturation,&brightness); SetPixelRed(image,ClampToQuantum(QuantumRange*hue),q); SetPixelGreen(image,ClampToQuantum(QuantumRange*saturation),q); - SetPixelBlue(image,ClampToQuantum(QuantumRange*intensity),q); + SetPixelBlue(image,ClampToQuantum(QuantumRange*brightness),q); q+=GetPixelChannels(image); } sync=SyncCacheViewAuthenticPixels(image_view,exception); @@ -2431,10 +2440,10 @@ static MagickBooleanType TransformsRGBImage(Image *image, return(MagickFalse); return(status); } - case HCLColorspace: + case HSIColorspace: { /* - Transform image from HCL to sRGB. + Transform image from source colorspace to sRGB. */ if (image->storage_class == PseudoClass) { @@ -2472,16 +2481,25 @@ static MagickBooleanType TransformsRGBImage(Image *image, { double blue, - chroma, green, - hue, - luma, - red; + red, + X, + Y, + Z; - hue=(double) (QuantumScale*GetPixelRed(image,q)); - chroma=(double) (QuantumScale*GetPixelGreen(image,q)); - luma=(double) (QuantumScale*GetPixelBlue(image,q)); - ConvertHCLToRGB(hue,chroma,luma,&red,&green,&blue); + X=QuantumScale*GetPixelRed(image,q); + Y=QuantumScale*GetPixelGreen(image,q); + Z=QuantumScale*GetPixelBlue(image,q); + switch (image->colorspace) + { + case HSIColorspace: + { + ConvertHSIToRGB(X,Y,Z,&red,&green,&blue); + break; + } + default: + break; + } SetPixelRed(image,ClampToQuantum(red),q); SetPixelGreen(image,ClampToQuantum(green),q); SetPixelBlue(image,ClampToQuantum(blue),q); @@ -2496,10 +2514,10 @@ static MagickBooleanType TransformsRGBImage(Image *image, return(MagickFalse); return(status); } - case HCLpColorspace: + case HCLColorspace: { /* - Transform image from HCLp to sRGB. + Transform image from HCL to sRGB. */ if (image->storage_class == PseudoClass) { @@ -2546,7 +2564,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, hue=(double) (QuantumScale*GetPixelRed(image,q)); chroma=(double) (QuantumScale*GetPixelGreen(image,q)); luma=(double) (QuantumScale*GetPixelBlue(image,q)); - ConvertHCLpToRGB(hue,chroma,luma,&red,&green,&blue); + ConvertHCLToRGB(hue,chroma,luma,&red,&green,&blue); SetPixelRed(image,ClampToQuantum(red),q); SetPixelGreen(image,ClampToQuantum(green),q); SetPixelBlue(image,ClampToQuantum(blue),q); @@ -2561,10 +2579,10 @@ static MagickBooleanType TransformsRGBImage(Image *image, return(MagickFalse); return(status); } - case HSBColorspace: + case HCLpColorspace: { /* - Transform image from HSB to sRGB. + Transform image from HCLp to sRGB. */ if (image->storage_class == PseudoClass) { @@ -2602,16 +2620,16 @@ static MagickBooleanType TransformsRGBImage(Image *image, { double blue, - brightness, + chroma, green, hue, - red, - saturation; + luma, + red; hue=(double) (QuantumScale*GetPixelRed(image,q)); - saturation=(double) (QuantumScale*GetPixelGreen(image,q)); - brightness=(double) (QuantumScale*GetPixelBlue(image,q)); - ConvertHSBToRGB(hue,saturation,brightness,&red,&green,&blue); + chroma=(double) (QuantumScale*GetPixelGreen(image,q)); + luma=(double) (QuantumScale*GetPixelBlue(image,q)); + ConvertHCLpToRGB(hue,chroma,luma,&red,&green,&blue); SetPixelRed(image,ClampToQuantum(red),q); SetPixelGreen(image,ClampToQuantum(green),q); SetPixelBlue(image,ClampToQuantum(blue),q); @@ -2626,10 +2644,10 @@ static MagickBooleanType TransformsRGBImage(Image *image, return(MagickFalse); return(status); } - case HSIColorspace: + case HSBColorspace: { /* - Transform image from HSI to sRGB. + Transform image from HSB to sRGB. */ if (image->storage_class == PseudoClass) { @@ -2667,16 +2685,16 @@ static MagickBooleanType TransformsRGBImage(Image *image, { double blue, + brightness, green, hue, - intensity, red, saturation; hue=(double) (QuantumScale*GetPixelRed(image,q)); saturation=(double) (QuantumScale*GetPixelGreen(image,q)); - intensity=(double) (QuantumScale*GetPixelBlue(image,q)); - ConvertHSIToRGB(hue,saturation,intensity,&red,&green,&blue); + brightness=(double) (QuantumScale*GetPixelBlue(image,q)); + ConvertHSBToRGB(hue,saturation,brightness,&red,&green,&blue); SetPixelRed(image,ClampToQuantum(red),q); SetPixelGreen(image,ClampToQuantum(green),q); SetPixelBlue(image,ClampToQuantum(blue),q);