]> granicus.if.org Git - imagemagick/commitdiff
Simplify palette-entry swapping in PNG encoder.
authorglennrp <glennrp@git.imagemagick.org>
Tue, 16 Nov 2010 00:49:07 +0000 (00:49 +0000)
committerglennrp <glennrp@git.imagemagick.org>
Tue, 16 Nov 2010 00:49:07 +0000 (00:49 +0000)
coders/png.c

index e41f4bf0e80f5e8013a7faa1b02b97b8e425daa4..62e0095faf1e9499dac7f5003e68b4cfa969742a 100644 (file)
@@ -6364,7 +6364,7 @@ static MagickBooleanType OptimizePNGColormap(Image *image, IndexPacket
 
   if (have_transparency && (image->colormap[0].opacity != 
      (Quantum) TransparentOpacity))
-    {
+   {
       /*
         Move the first transparent color to palette entry 0.
       */
@@ -6373,15 +6373,14 @@ static MagickBooleanType OptimizePNGColormap(Image *image, IndexPacket
         if (marker[i] && image->colormap[i].opacity ==
            (Quantum) TransparentOpacity)
           {
-            for (j=0; j < number_colors; j++)
-            {
-              if (ping_plte_map[j] == 0)
-                ping_plte_map[j]=ping_plte_map[i];
-
-              else if (ping_plte_map[j] == ping_plte_map[i])
-                ping_plte_map[j]=0;
+            IndexPacket
+              swap;
 
-            }
+            swap=ping_plte_map[0];
+            ping_plte_map[0]=ping_plte_map[i];
+            ping_plte_map[i]=swap;
+            marker[i]=marker[0];
+            marker[0]=MagickTrue;
             remap_needed=MagickTrue;
             break;
           }