diff --git a/coders/aai.c b/coders/aai.c
index c56312c..6a4f83b 100644
--- a/coders/aai.c
+++ b/coders/aai.c
@@ -378,7 +378,7 @@
         *q++=ScaleQuantumToChar(GetGreenPixelComponent(p));
         *q++=ScaleQuantumToChar(GetRedPixelComponent(p));
         *q=ScaleQuantumToChar((Quantum) (QuantumRange-
-          (image->matte != MagickFalse ? p->opacity : OpaqueOpacity)));
+          (image->matte != MagickFalse ? GetOpacityPixelComponent(p) : OpaqueOpacity)));
         if (*q == 255)
           *q=254;
         p++;
diff --git a/coders/avs.c b/coders/avs.c
index a4e41d6..dac7038 100644
--- a/coders/avs.c
+++ b/coders/avs.c
@@ -372,7 +372,7 @@
       for (x=0; x < (ssize_t) image->columns; x++)
       {
         *q++=ScaleQuantumToChar((Quantum) (QuantumRange-
-          (image->matte != MagickFalse ? p->opacity : OpaqueOpacity)));
+          (image->matte != MagickFalse ? GetOpacityPixelComponent(p) : OpaqueOpacity)));
         *q++=ScaleQuantumToChar(GetRedPixelComponent(p));
         *q++=ScaleQuantumToChar(GetGreenPixelComponent(p));
         *q++=ScaleQuantumToChar(GetBluePixelComponent(p));
diff --git a/coders/exr.c b/coders/exr.c
index a992e78..e481272 100644
--- a/coders/exr.c
+++ b/coders/exr.c
@@ -431,16 +431,16 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      ImfFloatToHalf(QuantumScale*p->red,&half_quantum);
+      ImfFloatToHalf(QuantumScale*GetRedPixelComponent(p),&half_quantum);
       scanline[x].r=half_quantum;
-      ImfFloatToHalf(QuantumScale*p->green,&half_quantum);
+      ImfFloatToHalf(QuantumScale*GetGreenPixelComponent(p),&half_quantum);
       scanline[x].g=half_quantum;
-      ImfFloatToHalf(QuantumScale*p->blue,&half_quantum);
+      ImfFloatToHalf(QuantumScale*GetBluePixelComponent(p),&half_quantum);
       scanline[x].b=half_quantum;
       if (image->matte == MagickFalse)
         ImfFloatToHalf(1.0,&half_quantum);
       else
-        ImfFloatToHalf(1.0-QuantumScale*p->opacity,&half_quantum);
+        ImfFloatToHalf(1.0-QuantumScale*GetOpacityPixelComponent(p),&half_quantum);
       scanline[x].a=half_quantum;
       p++;
     }
diff --git a/coders/hdr.c b/coders/hdr.c
index 950e7a8..a4d4cef 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -752,20 +752,20 @@
       pixel[1]=0;
       pixel[2]=0;
       pixel[3]=0;
-      gamma=QuantumScale*p->red;
-      if ((QuantumScale*p->green) > gamma)
-        gamma=QuantumScale*p->green;
-      if ((QuantumScale*p->blue) > gamma)
-        gamma=QuantumScale*p->blue;
+      gamma=QuantumScale*GetRedPixelComponent(p);
+      if ((QuantumScale*GetGreenPixelComponent(p)) > gamma)
+        gamma=QuantumScale*GetGreenPixelComponent(p);
+      if ((QuantumScale*GetBluePixelComponent(p)) > gamma)
+        gamma=QuantumScale*GetBluePixelComponent(p);
       if (gamma > MagickEpsilon)
         {
           int
             exponent;
 
           gamma=frexp(gamma,&exponent)*256.0/gamma;
-          pixel[0]=(unsigned char) (gamma*QuantumScale*p->red);
-          pixel[1]=(unsigned char) (gamma*QuantumScale*p->green);
-          pixel[2]=(unsigned char) (gamma*QuantumScale*p->blue);
+          pixel[0]=(unsigned char) (gamma*QuantumScale*GetRedPixelComponent(p));
+          pixel[1]=(unsigned char) (gamma*QuantumScale*GetGreenPixelComponent(p));
+          pixel[2]=(unsigned char) (gamma*QuantumScale*GetBluePixelComponent(p));
           pixel[3]=(unsigned char) (exponent+128);
         }
       if ((image->columns >= 8) && (image->columns <= 0x7ffff))
diff --git a/coders/icon.c b/coders/icon.c
index 68b36d9..f7568ed 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -1192,7 +1192,7 @@
           {
             byte<<=1;
             if ((next->matte == MagickTrue) &&
-                (p->opacity == (Quantum) TransparentOpacity))
+                (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity))
               byte|=0x01;
             bit++;
             if (bit == 8)
diff --git a/coders/miff.c b/coders/miff.c
index 2ecd2d1..ee2db85 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -2414,7 +2414,7 @@
             if ((length < 255) && (x < (ssize_t) (image->columns-1)) &&
                 (IsColorEqual(p,&pixel) != MagickFalse) &&
                 ((image->matte == MagickFalse) ||
-                 (p->opacity == pixel.opacity)) &&
+                 (GetOpacityPixelComponent(p) == pixel.opacity)) &&
                 ((indexes == (IndexPacket *) NULL) || (index == indexes[x])))
               length++;
             else
diff --git a/coders/palm.c b/coders/palm.c
index 2e3417a..2f69f05 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -863,7 +863,7 @@
               (size_t) QuantumRange) << 11) |
               (((63*(size_t) GetGreenPixelComponent(p))/(size_t) QuantumRange) << 5) |
               ((31*(size_t) GetBluePixelComponent(p))/(size_t) QuantumRange));
-            if (p->opacity == (Quantum) TransparentOpacity)
+            if (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity)
               {
                 transpix.red=GetRedPixelComponent(p);
                 transpix.green=GetGreenPixelComponent(p);
diff --git a/coders/png.c b/coders/png.c
index 5d5e84c..9bb20f8 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -574,11 +574,11 @@
               for (x=(ssize_t) image->columns-1; x >= 0; x--)
               {
                 ok_to_reduce=
-                  (p->red == ScaleQuantumToCharToQuantum(p->red) &&
-                  p->green == ScaleQuantumToCharToQuantum(p->green) &&
-                  p->blue == ScaleQuantumToCharToQuantum(p->blue) &&
+                  (GetRedPixelComponent(p) == ScaleQuantumToCharToQuantum(GetRedPixelComponent(p)) &&
+                  GetGreenPixelComponent(p) == ScaleQuantumToCharToQuantum(GetGreenPixelComponent(p)) &&
+                  GetBluePixelComponent(p) == ScaleQuantumToCharToQuantum(GetBluePixelComponent(p)) &&
                   (image->matte == MagickFalse ||
-                  p->opacity == ScaleQuantumToCharToQuantum(p->opacity)))
+                  GetOpacityPixelComponent(p) == ScaleQuantumToCharToQuantum(GetOpacityPixelComponent(p))))
                   ? MagickTrue : MagickFalse;
 
                 if (ok_to_reduce == MagickFalse)
diff --git a/coders/ps.c b/coders/ps.c
index 08ddd9b..6f646a4 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -1026,7 +1026,7 @@
 #define WriteRunlengthPacket(image,pixel,length,p) \
 { \
   if ((image->matte != MagickFalse) && \
-      (p->opacity == (Quantum) TransparentOpacity)) \
+      (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity)) \
     { \
       q=PopHexPixel(hex_digits,0xff,q); \
       q=PopHexPixel(hex_digits,0xff,q); \
@@ -1890,9 +1890,9 @@
                 length=255;
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
-                  if ((p->red == pixel.red) && (p->green == pixel.green) &&
-                      (p->blue == pixel.blue) &&
-                      (p->opacity == pixel.opacity) && (length < 255) &&
+                  if ((GetRedPixelComponent(p) == pixel.red) && (GetGreenPixelComponent(p) == pixel.green) &&
+                      (GetBluePixelComponent(p) == pixel.blue) &&
+                      (GetOpacityPixelComponent(p) == pixel.opacity) && (length < 255) &&
                       (x < (ssize_t) (image->columns-1)))
                     length++;
                   else
@@ -1950,7 +1950,7 @@
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
                   if ((image->matte != MagickFalse) &&
-                      (p->opacity == (Quantum) TransparentOpacity))
+                      (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity))
                     {
                       q=PopHexPixel(hex_digits,0xff,q);
                       q=PopHexPixel(hex_digits,0xff,q);
diff --git a/coders/ps2.c b/coders/ps2.c
index 1b20a15..97e7e27 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -885,7 +885,7 @@
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
                   if ((image->matte != MagickFalse) &&
-                      (p->opacity == (Quantum) TransparentOpacity))
+                      (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity))
                     {
                       *q++=ScaleQuantumToChar((Quantum) QuantumRange);
                       *q++=ScaleQuantumToChar((Quantum) QuantumRange);
@@ -940,7 +940,7 @@
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
                   if ((image->matte != MagickFalse) &&
-                      (p->opacity == (Quantum) TransparentOpacity))
+                      (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity))
                     {
                       Ascii85Encode(image,ScaleQuantumToChar((Quantum)
                         QuantumRange));
diff --git a/coders/uil.c b/coders/uil.c
index 580991d..115ce8e 100644
--- a/coders/uil.c
+++ b/coders/uil.c
@@ -249,7 +249,7 @@
             for (x=0; x < (ssize_t) image->columns; x++)
             {
               matte_image[i]=(unsigned char)
-              (p->opacity == (Quantum) TransparentOpacity ? 1 : 0);
+              (GetOpacityPixelComponent(p) == (Quantum) TransparentOpacity ? 1 : 0);
               if (matte_image[i] != 0)
                 transparent=MagickTrue;
               i++;
diff --git a/coders/webp.c b/coders/webp.c
index dcc281b..7751534 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -376,7 +376,7 @@
       *q++=ScaleQuantumToChar(GetBluePixelComponent(p));
       if (image->matte != MagickFalse)
         *q++=ScaleQuantumToChar((Quantum) (QuantumRange-
-          (image->matte != MagickFalse ? p->opacity : OpaqueOpacity)));
+          (image->matte != MagickFalse ? GetOpacityPixelComponent(p) : OpaqueOpacity)));
       p++;
     }
     status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,