]> granicus.if.org Git - imagemagick/blobdiff - coders/miff.c
(no commit message)
[imagemagick] / coders / miff.c
index 2ecd2d10d7d3587963e93c96564637f7b6666554..12976b64f137354de1aadf72cea59db7ab87ae4c 100644 (file)
@@ -1420,8 +1420,12 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
             length--;
             if ((image->storage_class == PseudoClass) ||
                 (image->colorspace == CMYKColorspace))
-              indexes[x]=index;
-            *q++=pixel;
+              SetIndexPixelComponent(indexes+x,index);
+            SetRedPixelComponent(q,pixel.red);
+            SetGreenPixelComponent(q,pixel.green);
+            SetBluePixelComponent(q,pixel.blue);
+            SetOpacityPixelComponent(q,pixel.opacity);
+            q++;
           }
           break;
         }
@@ -2414,8 +2418,9 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
             if ((length < 255) && (x < (ssize_t) (image->columns-1)) &&
                 (IsColorEqual(p,&pixel) != MagickFalse) &&
                 ((image->matte == MagickFalse) ||
-                 (p->opacity == pixel.opacity)) &&
-                ((indexes == (IndexPacket *) NULL) || (index == indexes[x])))
+                 (GetOpacityPixelComponent(p) == pixel.opacity)) &&
+                ((indexes == (IndexPacket *) NULL) ||
+                 (index == GetIndexPixelComponent(indexes+x))))
               length++;
             else
               {
@@ -2425,7 +2430,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
               }
             pixel=(*p);
             if (indexes != (IndexPacket *) NULL)
-              index=indexes[x];
+              index=GetIndexPixelComponent(indexes+x);
             p++;
           }
           q=PopRunlengthPacket(image,q,length,pixel,index);