]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/quantum-import.c
(no commit message)
[imagemagick] / MagickCore / quantum-import.c
index 6bb74fdd0eb7984017dd081928ccdcc49cb6babb..2c2154e3acd60de046a52f266ab1754ed4ed498c 100644 (file)
@@ -89,8 +89,8 @@
 %
 %  The format of the ImportQuantumPixels method is:
 %
-%      size_t ImportQuantumPixels(Image *image,CacheView *image_view,
-%        const QuantumInfo *quantum_info,const QuantumType quantum_type,
+%      size_t ImportQuantumPixels(const Image *image,CacheView *image_view,
+%        QuantumInfo *quantum_info,const QuantumType quantum_type,
 %        const unsigned char *pixels,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
@@ -119,8 +119,8 @@ static inline Quantum PushColormapIndex(const Image *image,const size_t index,
   return((Quantum) 0);
 }
 
-static inline const unsigned char *PushDoublePixel(
-  const QuantumState *quantum_state,const unsigned char *pixels,double *pixel)
+static inline const unsigned char *PushDoublePixel(QuantumInfo *quantum_info,
+  const unsigned char *pixels,double *pixel)
 {
   double
     *p;
@@ -128,7 +128,7 @@ static inline const unsigned char *PushDoublePixel(
   unsigned char
     quantum[8];
 
-  if (quantum_state->endian != LSBEndian)
+  if (quantum_info->endian != LSBEndian)
     {
       quantum[7]=(*pixels++);
       quantum[6]=(*pixels++);
@@ -140,8 +140,8 @@ static inline const unsigned char *PushDoublePixel(
       quantum[0]=(*pixels++);
       p=(double *) quantum;
       *pixel=(*p);
-      *pixel-=quantum_state->minimum;
-      *pixel*=quantum_state->scale;
+      *pixel-=quantum_info->minimum;
+      *pixel*=quantum_info->scale;
       return(pixels);
     }
   quantum[0]=(*pixels++);
@@ -154,13 +154,13 @@ static inline const unsigned char *PushDoublePixel(
   quantum[7]=(*pixels++);
   p=(double *) quantum;
   *pixel=(*p);
-  *pixel-=quantum_state->minimum;
-  *pixel*=quantum_state->scale;
+  *pixel-=quantum_info->minimum;
+  *pixel*=quantum_info->scale;
   return(pixels);
 }
 
-static inline const unsigned char *PushFloatPixel(
-  const QuantumState *quantum_state,const unsigned char *pixels,float *pixel)
+static inline const unsigned char *PushFloatPixel(QuantumInfo *quantum_info,
+  const unsigned char *pixels,float *pixel)
 {
   float
     *p;
@@ -168,7 +168,7 @@ static inline const unsigned char *PushFloatPixel(
   unsigned char
     quantum[4];
 
-  if (quantum_state->endian != LSBEndian)
+  if (quantum_info->endian != LSBEndian)
     {
       quantum[3]=(*pixels++);
       quantum[2]=(*pixels++);
@@ -176,8 +176,8 @@ static inline const unsigned char *PushFloatPixel(
       quantum[0]=(*pixels++);
       p=(float *) quantum;
       *pixel=(*p);
-      *pixel-=quantum_state->minimum;
-      *pixel*=quantum_state->scale;
+      *pixel-=quantum_info->minimum;
+      *pixel*=quantum_info->scale;
       return(pixels);
     }
   quantum[0]=(*pixels++);
@@ -186,12 +186,13 @@ static inline const unsigned char *PushFloatPixel(
   quantum[3]=(*pixels++);
   p=(float *) quantum;
   *pixel=(*p);
-  *pixel-=quantum_state->minimum;
-  *pixel*=quantum_state->scale;
+  *pixel-=quantum_info->minimum;
+  *pixel*=quantum_info->scale;
   return(pixels);
 }
 
-static inline const unsigned char *PushQuantumPixel(QuantumState *quantum_state,  const size_t depth,const unsigned char *pixels,unsigned int *quantum)
+static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
+  const unsigned char *pixels,unsigned int *quantum)
 {
   register ssize_t
     i;
@@ -200,28 +201,27 @@ static inline const unsigned char *PushQuantumPixel(QuantumState *quantum_state,
     quantum_bits;
 
   *quantum=(QuantumAny) 0;
-  for (i=(ssize_t) depth; i > 0L; )
+  for (i=(ssize_t) quantum_info->depth; i > 0L; )
   {
-    if (quantum_state->bits == 0UL)
+    if (quantum_info->state.bits == 0UL)
       {
-        quantum_state->pixel=(*pixels++);
-        quantum_state->bits=8UL;
+        quantum_info->state.pixel=(*pixels++);
+        quantum_info->state.bits=8UL;
       }
     quantum_bits=(size_t) i;
-    if (quantum_bits > quantum_state->bits)
-      quantum_bits=quantum_state->bits;
+    if (quantum_bits > quantum_info->state.bits)
+      quantum_bits=quantum_info->state.bits;
     i-=(ssize_t) quantum_bits;
-    quantum_state->bits-=quantum_bits;
+    quantum_info->state.bits-=quantum_bits;
     *quantum=(unsigned int) ((*quantum << quantum_bits) |
-      ((quantum_state->pixel >> quantum_state->bits) &~ ((~0UL) <<
+      ((quantum_info->state.pixel >> quantum_info->state.bits) &~ ((~0UL) <<
       quantum_bits)));
   }
   return(pixels);
 }
 
 static inline const unsigned char *PushQuantumLongPixel(
-  QuantumState *quantum_state,const size_t depth,const unsigned char *pixels,
-  unsigned int *quantum)
+  QuantumInfo *quantum_info,const unsigned char *pixels,unsigned int *quantum)
 {
   register ssize_t
     i;
@@ -230,33 +230,29 @@ static inline const unsigned char *PushQuantumLongPixel(
     quantum_bits;
 
   *quantum=0UL;
-  for (i=(ssize_t) depth; i > 0; )
+  for (i=(ssize_t) quantum_info->depth; i > 0; )
   {
-    if (quantum_state->bits == 0)
+    if (quantum_info->state.bits == 0)
       {
-        pixels=PushLongPixel(quantum_state->endian,pixels,
-          &quantum_state->pixel);
-        quantum_state->bits=32U;
+        pixels=PushLongPixel(quantum_info->endian,pixels,
+          &quantum_info->state.pixel);
+        quantum_info->state.bits=32U;
       }
     quantum_bits=(size_t) i;
-    if (quantum_bits > quantum_state->bits)
-      quantum_bits=quantum_state->bits;
-    *quantum|=(((quantum_state->pixel >> (32U-quantum_state->bits)) &
-      quantum_state->mask[quantum_bits]) << (depth-i));
+    if (quantum_bits > quantum_info->state.bits)
+      quantum_bits=quantum_info->state.bits;
+    *quantum|=(((quantum_info->state.pixel >> (32U-quantum_info->state.bits)) &
+      quantum_info->state.mask[quantum_bits]) << (quantum_info->depth-i));
     i-=(ssize_t) quantum_bits;
-    quantum_state->bits-=quantum_bits;
+    quantum_info->state.bits-=quantum_bits;
   }
   return(pixels);
 }
 
-static void ImportAlphaQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -266,7 +262,6 @@ static void ImportAlphaQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -292,7 +287,7 @@ static void ImportAlphaQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -302,7 +297,7 @@ static void ImportAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -321,7 +316,7 @@ static void ImportAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -330,7 +325,7 @@ static void ImportAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -346,7 +341,7 @@ static void ImportAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -356,10 +351,10 @@ static void ImportAlphaQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -369,13 +364,10 @@ static void ImportAlphaQuantum(const Image *image,
   }
 }
 
-static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
-  QuantumState quantum_state,const MagickSizeType number_pixels,
-  const unsigned char *restrict p,Quantum *restrict q,ExceptionInfo *exception)
+static void ImportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
+  const MagickSizeType number_pixels,const unsigned char *restrict p,
+  Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -388,7 +380,6 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -412,12 +403,12 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     case 10:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushLongPixel(endian,p,&pixel);
+            p=PushLongPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range),q);
             SetPixelGreen(image,ScaleAnyToQuantum((pixel >> 12) & 0x3ff,range),
               q);
@@ -431,11 +422,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
             q+=GetPixelChannels(image);
           }
@@ -443,11 +434,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -455,7 +446,7 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     case 12:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           unsigned short
@@ -463,7 +454,7 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) (3*number_pixels-1); x+=2)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch (x % 3)
             {
               default:
@@ -487,7 +478,7 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
                 break;
               }
             }
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch ((x+1) % 3)
             {
               default:
@@ -515,7 +506,7 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
           }
           for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch ((x+bit) % 3)
             {
               default:
@@ -549,11 +540,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
             q+=GetPixelChannels(image);
           }
@@ -561,11 +552,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -580,13 +571,13 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -596,11 +587,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -619,11 +610,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -632,11 +623,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -652,11 +643,11 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -666,14 +657,14 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -682,14 +673,10 @@ static void ImportBGRQuantum(const Image *image,const QuantumInfo *quantum_info,
   }
 }
 
-static void ImportBGRAQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -699,7 +686,6 @@ static void ImportBGRAQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -746,7 +732,7 @@ static void ImportBGRAQuantum(const Image *image,
               {
                 case 0:
                 {
-                  p=PushLongPixel(endian,p,&pixel);
+                  p=PushLongPixel(quantum_info->endian,p,&pixel);
                   quantum=(size_t) (ScaleShortToQuantum((unsigned short)
                     (((pixel >> 22) & 0x3ff) << 6)));
                   break;
@@ -780,15 +766,15 @@ static void ImportBGRAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
         q+=GetPixelChannels(image);
@@ -804,16 +790,16 @@ static void ImportBGRAQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -823,13 +809,13 @@ static void ImportBGRAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -848,13 +834,13 @@ static void ImportBGRAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -863,13 +849,13 @@ static void ImportBGRAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -885,13 +871,13 @@ static void ImportBGRAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -901,16 +887,16 @@ static void ImportBGRAQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -919,14 +905,10 @@ static void ImportBGRAQuantum(const Image *image,
   }
 }
 
-static void ImportBlackQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -939,10 +921,9 @@ static void ImportBlackQuantum(const Image *image,
   if (image->colorspace != CMYKColorspace)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "ColorSeparatedImageRequired","`%s'",image->filename);
+        "ColorSeparatedImageRequired","'%s'",image->filename);
       return;
     }
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -968,7 +949,7 @@ static void ImportBlackQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlack(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -978,7 +959,7 @@ static void ImportBlackQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -997,7 +978,7 @@ static void ImportBlackQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1006,7 +987,7 @@ static void ImportBlackQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1022,7 +1003,7 @@ static void ImportBlackQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1032,10 +1013,10 @@ static void ImportBlackQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlack(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1045,14 +1026,10 @@ static void ImportBlackQuantum(const Image *image,
   }
 }
 
-static void ImportBlueQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1062,7 +1039,6 @@ static void ImportBlueQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -1088,7 +1064,7 @@ static void ImportBlueQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -1098,7 +1074,7 @@ static void ImportBlueQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1117,7 +1093,7 @@ static void ImportBlueQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1126,7 +1102,7 @@ static void ImportBlueQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1142,7 +1118,7 @@ static void ImportBlueQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1152,10 +1128,10 @@ static void ImportBlueQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1165,14 +1141,10 @@ static void ImportBlueQuantum(const Image *image,
   }
 }
 
-static void ImportCbYCrYQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1182,7 +1154,6 @@ static void ImportCbYCrYQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 10:
@@ -1212,7 +1183,7 @@ static void ImportCbYCrYQuantum(const Image *image,
               {
                 case 0:
                 {
-                  p=PushLongPixel(endian,p,&pixel);
+                  p=PushLongPixel(quantum_info->endian,p,&pixel);
                   quantum=(size_t) (ScaleShortToQuantum((unsigned short)
                     (((pixel >> 22) & 0x3ff) << 6)));
                   break;
@@ -1248,12 +1219,12 @@ static void ImportCbYCrYQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -1262,14 +1233,10 @@ static void ImportCbYCrYQuantum(const Image *image,
   }
 }
 
-static void ImportCMYKQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1282,10 +1249,9 @@ static void ImportCMYKQuantum(const Image *image,
   if (image->colorspace != CMYKColorspace)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "ColorSeparatedImageRequired","`%s'",image->filename);
+        "ColorSeparatedImageRequired","'%s'",image->filename);
       return;
     }
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -1317,16 +1283,16 @@ static void ImportCMYKQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlack(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -1336,13 +1302,13 @@ static void ImportCMYKQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1361,13 +1327,13 @@ static void ImportCMYKQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1376,13 +1342,13 @@ static void ImportCMYKQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1398,13 +1364,13 @@ static void ImportCMYKQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1414,16 +1380,16 @@ static void ImportCMYKQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlack(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -1432,14 +1398,10 @@ static void ImportCMYKQuantum(const Image *image,
   }
 }
 
-static void ImportCMYKAQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1452,10 +1414,9 @@ static void ImportCMYKAQuantum(const Image *image,
   if (image->colorspace != CMYKColorspace)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "ColorSeparatedImageRequired","`%s'",image->filename);
+        "ColorSeparatedImageRequired","'%s'",image->filename);
       return;
     }
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -1489,19 +1450,19 @@ static void ImportCMYKAQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlack(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -1511,15 +1472,15 @@ static void ImportCMYKAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1538,15 +1499,15 @@ static void ImportCMYKAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1555,15 +1516,15 @@ static void ImportCMYKAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlack(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1579,17 +1540,17 @@ static void ImportCMYKAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlack(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
           }
@@ -1598,18 +1559,18 @@ static void ImportCMYKAQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlack(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -1618,14 +1579,10 @@ static void ImportCMYKAQuantum(const Image *image,
   }
 }
 
-static void ImportGrayQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1638,7 +1595,6 @@ static void ImportGrayQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 1:
@@ -1677,7 +1633,7 @@ static void ImportGrayQuantum(const Image *image,
       register unsigned char
         pixel;
 
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
       {
         pixel=(unsigned char) ((*p >> 4) & 0xf);
@@ -1725,14 +1681,14 @@ static void ImportGrayQuantum(const Image *image,
     }
     case 10:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           if (image->endian != LSBEndian)
             {
               for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
               {
-                p=PushLongPixel(endian,p,&pixel);
+                p=PushLongPixel(quantum_info->endian,p,&pixel);
                 SetPixelGray(image,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,
                   range),q);
                 q+=GetPixelChannels(image);
@@ -1744,7 +1700,7 @@ static void ImportGrayQuantum(const Image *image,
                 p+=quantum_info->pad;
                 q+=GetPixelChannels(image);
               }
-              p=PushLongPixel(endian,p,&pixel);
+              p=PushLongPixel(quantum_info->endian,p,&pixel);
               if (x++ < (ssize_t) (number_pixels-1))
                 {
                   SetPixelGray(image,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,
@@ -1761,7 +1717,7 @@ static void ImportGrayQuantum(const Image *image,
             }
           for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
           {
-            p=PushLongPixel(endian,p,&pixel);
+            p=PushLongPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range),
               q);
             q+=GetPixelChannels(image);
@@ -1773,7 +1729,7 @@ static void ImportGrayQuantum(const Image *image,
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
           }
-          p=PushLongPixel(endian,p,&pixel);
+          p=PushLongPixel(quantum_info->endian,p,&pixel);
           if (x++ < (ssize_t) (number_pixels-1))
             {
               SetPixelGray(image,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range),
@@ -1790,7 +1746,7 @@ static void ImportGrayQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1799,7 +1755,7 @@ static void ImportGrayQuantum(const Image *image,
     }
     case 12:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           unsigned short
@@ -1807,11 +1763,11 @@ static void ImportGrayQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) (number_pixels-1); x+=2)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ScaleAnyToQuantum((QuantumAny) (pixel >> 4),
               range),q);
             q+=GetPixelChannels(image);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ScaleAnyToQuantum((QuantumAny) (pixel >> 4),
               range),q);
             p+=quantum_info->pad;
@@ -1819,7 +1775,7 @@ static void ImportGrayQuantum(const Image *image,
           }
           for (bit=0; bit < (ssize_t) (number_pixels % 2); bit++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ScaleAnyToQuantum((QuantumAny) (pixel >> 4),
               range),q);
             p+=quantum_info->pad;
@@ -1831,7 +1787,7 @@ static void ImportGrayQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1847,7 +1803,7 @@ static void ImportGrayQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ScaleShortToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1858,7 +1814,7 @@ static void ImportGrayQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -1868,7 +1824,7 @@ static void ImportGrayQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGray(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1887,7 +1843,7 @@ static void ImportGrayQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGray(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1896,7 +1852,7 @@ static void ImportGrayQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGray(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1912,7 +1868,7 @@ static void ImportGrayQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGray(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -1922,10 +1878,10 @@ static void ImportGrayQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -1935,14 +1891,10 @@ static void ImportGrayQuantum(const Image *image,
   }
 }
 
-static void ImportGrayAlphaQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -1955,7 +1907,6 @@ static void ImportGrayAlphaQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 1:
@@ -1993,7 +1944,7 @@ static void ImportGrayAlphaQuantum(const Image *image,
       register unsigned char
         pixel;
 
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
         pixel=(unsigned char) ((*p >> 4) & 0xf);
@@ -2023,12 +1974,12 @@ static void ImportGrayAlphaQuantum(const Image *image,
     }
     case 10:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2037,12 +1988,12 @@ static void ImportGrayAlphaQuantum(const Image *image,
     }
     case 12:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2058,10 +2009,10 @@ static void ImportGrayAlphaQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGray(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -2071,9 +2022,9 @@ static void ImportGrayAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGray(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2092,9 +2043,9 @@ static void ImportGrayAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGray(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2103,9 +2054,9 @@ static void ImportGrayAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGray(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2121,9 +2072,9 @@ static void ImportGrayAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGray(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2133,12 +2084,12 @@ static void ImportGrayAlphaQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGray(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2148,14 +2099,10 @@ static void ImportGrayAlphaQuantum(const Image *image,
   }
 }
 
-static void ImportGreenQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -2165,7 +2112,6 @@ static void ImportGreenQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -2191,7 +2137,7 @@ static void ImportGreenQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -2201,7 +2147,7 @@ static void ImportGreenQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2220,7 +2166,7 @@ static void ImportGreenQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2229,7 +2175,7 @@ static void ImportGreenQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2245,7 +2191,7 @@ static void ImportGreenQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2255,10 +2201,10 @@ static void ImportGreenQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2268,14 +2214,10 @@ static void ImportGreenQuantum(const Image *image,
   }
 }
 
-static void ImportIndexQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   MagickBooleanType
     range_exception;
 
@@ -2291,10 +2233,9 @@ static void ImportIndexQuantum(const Image *image,
   if (image->storage_class != PseudoClass)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "ColormappedImageRequired","`%s'",image->filename);
+        "ColormappedImageRequired","'%s'",image->filename);
       return;
     }
-  endian=quantum_state.endian;
   range_exception=MagickFalse;
   switch (quantum_info->depth)
   {
@@ -2388,7 +2329,7 @@ static void ImportIndexQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,ClampToQuantum(
               (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)),
               &range_exception),q);
@@ -2401,7 +2342,7 @@ static void ImportIndexQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
@@ -2422,7 +2363,7 @@ static void ImportIndexQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,ClampToQuantum(pixel),
               &range_exception),q);
             SetPixelInfoPixel(image,image->colormap+(ssize_t)
@@ -2434,7 +2375,7 @@ static void ImportIndexQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
@@ -2452,7 +2393,7 @@ static void ImportIndexQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,ClampToQuantum(pixel),
               &range_exception),q);
             SetPixelInfoPixel(image,image->colormap+(ssize_t)
@@ -2467,7 +2408,7 @@ static void ImportIndexQuantum(const Image *image,
     {
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
@@ -2479,17 +2420,13 @@ static void ImportIndexQuantum(const Image *image,
   }
   if (range_exception != MagickFalse)
     (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-      "InvalidColormapIndex","`%s'",image->filename);
+      "InvalidColormapIndex","'%s'",image->filename);
 }
 
 static void ImportIndexAlphaQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
-  const MagickSizeType number_pixels,const unsigned char *restrict p,
-  Quantum *restrict q,ExceptionInfo *exception)
+  QuantumInfo *quantum_info,const MagickSizeType number_pixels,
+  const unsigned char *restrict p,Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   MagickBooleanType
     range_exception;
 
@@ -2508,10 +2445,9 @@ static void ImportIndexAlphaQuantum(const Image *image,
   if (image->storage_class != PseudoClass)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "ColormappedImageRequired","`%s'",image->filename);
+        "ColormappedImageRequired","'%s'",image->filename);
       return;
     }
-  endian=quantum_state.endian;
   range_exception=MagickFalse;
   switch (quantum_info->depth)
   {
@@ -2555,7 +2491,7 @@ static void ImportIndexAlphaQuantum(const Image *image,
       register unsigned char
         pixel;
 
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
         pixel=(unsigned char) ((*p >> 4) & 0xf);
@@ -2596,13 +2532,13 @@ static void ImportIndexAlphaQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,ClampToQuantum(
               (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)),
               &range_exception),q);
             SetPixelInfoPixel(image,image->colormap+(ssize_t)
               GetPixelIndex(image,q),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType)
               QuantumRange*HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -2612,11 +2548,11 @@ static void ImportIndexAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2635,12 +2571,12 @@ static void ImportIndexAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,
               ClampToQuantum(pixel),&range_exception),q);
             SetPixelInfoPixel(image,image->colormap+(ssize_t)
               GetPixelIndex(image,q),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2649,11 +2585,11 @@ static void ImportIndexAlphaQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2669,12 +2605,12 @@ static void ImportIndexAlphaQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelIndex(image,PushColormapIndex(image,ClampToQuantum(pixel),
               &range_exception),q);
             SetPixelInfoPixel(image,image->colormap+(ssize_t)
               GetPixelIndex(image,q),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2684,14 +2620,14 @@ static void ImportIndexAlphaQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelIndex(image,PushColormapIndex(image,pixel,&range_exception),q);
         SetPixelInfoPixel(image,image->colormap+(ssize_t)
           GetPixelIndex(image,q),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2701,17 +2637,13 @@ static void ImportIndexAlphaQuantum(const Image *image,
   }
   if (range_exception != MagickFalse)
     (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-      "InvalidColormapIndex","`%s'",image->filename);
+      "InvalidColormapIndex","'%s'",image->filename);
 }
 
-static void ImportOpacityQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -2721,7 +2653,6 @@ static void ImportOpacityQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -2747,7 +2678,7 @@ static void ImportOpacityQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelOpacity(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -2757,7 +2688,7 @@ static void ImportOpacityQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelOpacity(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2776,7 +2707,7 @@ static void ImportOpacityQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelOpacity(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2785,7 +2716,7 @@ static void ImportOpacityQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelOpacity(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2801,7 +2732,7 @@ static void ImportOpacityQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelOpacity(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2811,10 +2742,10 @@ static void ImportOpacityQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelOpacity(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2823,13 +2754,10 @@ static void ImportOpacityQuantum(const Image *image,
     }
   }
 }
-static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
-  QuantumState quantum_state,const MagickSizeType number_pixels,
-  const unsigned char *restrict p,Quantum *restrict q,ExceptionInfo *exception)
+static void ImportRedQuantum(const Image *image,QuantumInfo *quantum_info,
+  const MagickSizeType number_pixels,const unsigned char *restrict p,
+  Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -2839,7 +2767,6 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -2865,7 +2792,7 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -2875,7 +2802,7 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2894,7 +2821,7 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2903,7 +2830,7 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2919,7 +2846,7 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -2929,10 +2856,10 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -2942,13 +2869,10 @@ static void ImportRedQuantum(const Image *image,const QuantumInfo *quantum_info,
   }
 }
 
-static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
-  QuantumState quantum_state,const MagickSizeType number_pixels,
-  const unsigned char *restrict p,Quantum *restrict q,ExceptionInfo *exception)
+static void ImportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
+  const MagickSizeType number_pixels,const unsigned char *restrict p,
+  Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -2961,7 +2885,6 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -2985,12 +2908,12 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     case 10:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushLongPixel(endian,p,&pixel);
+            p=PushLongPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range),q);
             SetPixelGreen(image,ScaleAnyToQuantum((pixel >> 12) & 0x3ff,range),
               q);
@@ -3004,11 +2927,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
             q+=GetPixelChannels(image);
           }
@@ -3016,11 +2939,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -3028,7 +2951,7 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     case 12:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
           unsigned short
@@ -3036,7 +2959,7 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) (3*number_pixels-1); x+=2)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch (x % 3)
             {
               default:
@@ -3060,7 +2983,7 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
                 break;
               }
             }
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch ((x+1) % 3)
             {
               default:
@@ -3088,7 +3011,7 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
           }
           for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             switch ((x+bit) % 3)
             {
               default:
@@ -3122,11 +3045,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-            p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
+            p=PushQuantumLongPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
             q+=GetPixelChannels(image);
           }
@@ -3134,11 +3057,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -3153,13 +3076,13 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -3169,11 +3092,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -3192,11 +3115,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -3205,11 +3128,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -3225,11 +3148,11 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -3239,14 +3162,14 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -3255,14 +3178,10 @@ static void ImportRGBQuantum(const Image *image,const QuantumInfo *quantum_info,
   }
 }
 
-static void ImportRGBAQuantum(const Image *image,
-  const QuantumInfo *quantum_info,QuantumState quantum_state,
+static void ImportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
 {
-  EndianType
-    endian;
-
   QuantumAny
     range;
 
@@ -3272,7 +3191,6 @@ static void ImportRGBAQuantum(const Image *image,
   unsigned int
     pixel;
 
-  endian=quantum_state.endian;
   switch (quantum_info->depth)
   {
     case 8:
@@ -3319,7 +3237,7 @@ static void ImportRGBAQuantum(const Image *image,
               {
                 case 0:
                 {
-                  p=PushLongPixel(endian,p,&pixel);
+                  p=PushLongPixel(quantum_info->endian,p,&pixel);
                   quantum=(size_t) (ScaleShortToQuantum((unsigned short)
                     (((pixel >> 22) & 0x3ff) << 6)));
                   break;
@@ -3353,15 +3271,15 @@ static void ImportRGBAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum((unsigned short) (pixel << 6)),
           q);
         q+=GetPixelChannels(image);
@@ -3377,16 +3295,16 @@ static void ImportRGBAQuantum(const Image *image,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
-            p=PushShortPixel(endian,p,&pixel);
+            p=PushShortPixel(quantum_info->endian,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum((MagickRealType) QuantumRange*
               HalfToSinglePrecision(pixel)),q);
             p+=quantum_info->pad;
@@ -3396,13 +3314,13 @@ static void ImportRGBAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleShortToQuantum(pixel),q);
-        p=PushShortPixel(endian,p,&pixel);
+        p=PushShortPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleShortToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -3421,13 +3339,13 @@ static void ImportRGBAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushFloatPixel(&quantum_state,p,&pixel);
+            p=PushFloatPixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -3436,13 +3354,13 @@ static void ImportRGBAQuantum(const Image *image,
         }
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelRed(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelGreen(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelBlue(image,ScaleLongToQuantum(pixel),q);
-        p=PushLongPixel(endian,p,&pixel);
+        p=PushLongPixel(quantum_info->endian,p,&pixel);
         SetPixelAlpha(image,ScaleLongToQuantum(pixel),q);
         p+=quantum_info->pad;
         q+=GetPixelChannels(image);
@@ -3458,13 +3376,13 @@ static void ImportRGBAQuantum(const Image *image,
 
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelRed(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelGreen(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelBlue(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(&quantum_state,p,&pixel);
+            p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
@@ -3474,16 +3392,16 @@ static void ImportRGBAQuantum(const Image *image,
     }
     default:
     {
-      range=GetQuantumRange(image->depth);
+      range=GetQuantumRange(quantum_info->depth);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelRed(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelGreen(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelBlue(image,ScaleAnyToQuantum(pixel,range),q);
-        p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
+        p=PushQuantumPixel(quantum_info,p,&pixel);
         SetPixelAlpha(image,ScaleAnyToQuantum(pixel,range),q);
         q+=GetPixelChannels(image);
       }
@@ -3492,16 +3410,14 @@ static void ImportRGBAQuantum(const Image *image,
   }
 }
 
-MagickExport size_t ImportQuantumPixels(Image *image,CacheView *image_view,
-  const QuantumInfo *quantum_info,const QuantumType quantum_type,
-  const unsigned char *pixels,ExceptionInfo *exception)
+MagickExport size_t ImportQuantumPixels(const Image *image,
+  CacheView *image_view,QuantumInfo *quantum_info,
+  const QuantumType quantum_type,const unsigned char *pixels,
+  ExceptionInfo *exception)
 {
   MagickSizeType
     number_pixels;
 
-  QuantumState
-    quantum_state;
-
   register const unsigned char
     *restrict p;
 
@@ -3534,118 +3450,101 @@ MagickExport size_t ImportQuantumPixels(Image *image,CacheView *image_view,
       number_pixels=GetCacheViewExtent(image_view);
       q=GetCacheViewAuthenticPixelQueue(image_view);
     }
-  InitializeQuantumState(quantum_info,image->endian,&quantum_state);
+  ResetQuantumState(quantum_info);
   extent=GetQuantumExtent(image,quantum_info,quantum_type);
   switch (quantum_type)
   {
     case AlphaQuantum:
     {
-      ImportAlphaQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportAlphaQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case BGRQuantum:
     {
-      ImportBGRQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportBGRQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case BGRAQuantum:
     case BGROQuantum:
     {
-      ImportBGRAQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportBGRAQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case BlackQuantum:
     {
-      ImportBlackQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportBlackQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case BlueQuantum:
     case YellowQuantum:
     {
-      ImportBlueQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportBlueQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case CMYKQuantum:
     {
-      ImportCMYKQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportCMYKQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case CMYKAQuantum:
     case CMYKOQuantum:
     {
-      ImportCMYKAQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportCMYKAQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case CbYCrYQuantum:
     {
-      ImportCbYCrYQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportCbYCrYQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case GrayQuantum:
     {
-      ImportGrayQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportGrayQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case GrayAlphaQuantum:
     {
-      ImportGrayAlphaQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportGrayAlphaQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case GreenQuantum:
     case MagentaQuantum:
     {
-      ImportGreenQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportGreenQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case IndexQuantum:
     {
-      ImportIndexQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportIndexQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case IndexAlphaQuantum:
     {
-      ImportIndexAlphaQuantum(image,quantum_info,quantum_state,number_pixels,p,
-        q,exception);
+      ImportIndexAlphaQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case OpacityQuantum:
     {
-      ImportOpacityQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportOpacityQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case RedQuantum:
     case CyanQuantum:
     {
-      ImportRedQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportRedQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case RGBQuantum:
     case CbYCrQuantum:
     {
-      ImportRGBQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportRGBQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     case RGBAQuantum:
     case RGBOQuantum:
     case CbYCrAQuantum:
     {
-      ImportRGBAQuantum(image,quantum_info,quantum_state,number_pixels,p,q,
-        exception);
+      ImportRGBAQuantum(image,quantum_info,number_pixels,p,q,exception);
       break;
     }
     default:
@@ -3704,6 +3603,11 @@ MagickExport size_t ImportQuantumPixels(Image *image,CacheView *image_view,
         register ssize_t
           i;
 
+        if (GetPixelMask(image,q) != 0)
+          {
+            q+=GetPixelChannels(image);
+            continue;
+          }
         Sa=QuantumScale*GetPixelAlpha(image,q);
         gamma=1.0/(fabs(Sa) <= MagickEpsilon ? 1.0 : Sa);
         for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3716,8 +3620,9 @@ MagickExport size_t ImportQuantumPixels(Image *image,CacheView *image_view,
 
           channel=GetPixelChannelMapChannel(image,i);
           traits=GetPixelChannelMapTraits(image,channel);
-          if ((traits & UpdatePixelTrait) != 0)
-            q[i]=ClampToQuantum(gamma*q[i]);
+          if ((traits & UpdatePixelTrait) == 0)
+            continue;
+          q[i]=ClampToQuantum(gamma*q[i]);
         }
         q+=GetPixelChannels(image);
       }