]> granicus.if.org Git - imagemagick/blobdiff - coders/pict.c
Accommodate background color index in PLTE chunk
[imagemagick] / coders / pict.c
index d0721e46b81c4d6e678086e13693f3ea8c217b02..09ba705b49247bde1c9424626fd582b5a65c011d 100644 (file)
@@ -1242,7 +1242,7 @@ static Image *ReadPICTImage(const ImageInfo *image_info,
               if ((code == 0x9a) || (code == 0x9b) ||
                   ((bytes_per_line & 0x8000) != 0))
                 (void) CompositeImage(image,tile_image,CopyCompositeOp,
-                  MagickFalse,destination.left,destination.top,exception);
+                  MagickTrue,destination.left,destination.top,exception);
             tile_image=DestroyImage(tile_image);
             break;
           }
@@ -1385,10 +1385,10 @@ static Image *ReadPICTImage(const ImageInfo *image_info,
         (void) SetImageExtent(image,
           MagickMax(image->columns,tile_image->columns),
           MagickMax(image->rows,tile_image->rows),exception);
-        if (IsRGBColorspace(image->colorspace) == MagickFalse)
+        if (IssRGBCompatibleColorspace(tile_image->colorspace) == MagickFalse)
           (void) TransformImageColorspace(image,tile_image->colorspace,
             exception);
-        (void) CompositeImage(image,tile_image,CopyCompositeOp,MagickFalse,
+        (void) CompositeImage(image,tile_image,CopyCompositeOp,MagickTrue,
           frame.left,frame.right,exception);
         image->compression=tile_image->compression;
         tile_image=DestroyImage(tile_image);
@@ -1603,7 +1603,7 @@ static MagickBooleanType WritePICTImage(const ImageInfo *image_info,
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if (IsRGBColorspace(image->colorspace) == MagickFalse)
+  if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
   /*
     Initialize image info.