]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 4 May 2013 20:19:06 +0000 (20:19 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 4 May 2013 20:19:06 +0000 (20:19 +0000)
MagickCore/colorspace.c

index 46bf7a4d593f27317bc837b4d8021ad1b3bd8275..326af60d13603f5dd4acc3f4b6e549fac9cd1ff7 100644 (file)
@@ -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);