]> granicus.if.org Git - imagemagick/commitdiff
Added define 'psd:additional-info' to preserve the additional information in a PSD... 7.0.2-10
authordirk <dirk@git.imagemagick.org>
Sat, 27 Aug 2016 19:58:06 +0000 (21:58 +0200)
committerdirk <dirk@git.imagemagick.org>
Sat, 27 Aug 2016 19:58:06 +0000 (21:58 +0200)
ChangeLog
coders/psd.c

index 620708dfaa408605c8f71a025cc2fbb72fad0c15..4d389dbe02d1b69b0a2933b023ca26523cc56500 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 2016-08-27  7.0.2-10 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.2-10, GIT revision 18750:e3335b3:20160827.
 
+2016-08-27  7.0.2-10 Dirk Lemstra <dirk@lem.....org>
+  * Added define 'psd:additional-info' to preserve the additional information
+    in a PSD file.
+
 2016-08-15  7.0.2-10 Cristy  <quetzlzacatenango@image...>
   * Prevent buffer overflow in BMP & SGI coders (bug report from
     pwchen&rayzhong of tencent).
index 4d8284154ca43c222aea54285ca398dec718045d..640349932f6b83ef05254919bf73f47ca7f24ee9 100644 (file)
@@ -84,7 +84,7 @@
 */
 #define MaxPSDChannels  56
 #define PSDQuantum(x) (((ssize_t) (x)+1) & -2)
-#define PSDAdditionalInfo "PSDInfo"
+#define PSDAdditionalInfo "psd:additional-info"
 \f
 /*
   Enumerated declaractions.
@@ -2653,8 +2653,8 @@ static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile)
   }
 }
 
-static const StringInfo *FilterAdditionalLayerInformation(Image *image,
-  ExceptionInfo *exception)
+static const StringInfo *GetAdditionalInformation(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
 {
 #define PSDKeySize 5
 #define PSDAllowedLength 36
@@ -2669,7 +2669,8 @@ static const StringInfo *FilterAdditionalLayerInformation(Image *image,
       "GdFl", "grdm", "hue ", "hue2", "infx", "knko", "lclr", "levl", "lnsr",
       "lfx2", "luni", "lrFX", "lspf", "lyid", "lyvr", "mixr", "nvrt", "phfl",
       "post", "PtFl", "selc", "shpa", "sn2P", "SoCo", "thrs", "tsly", "vibA"
-    };
+    },
+    *option;
 
   const StringInfo
     *info;
@@ -2696,6 +2697,14 @@ static const StringInfo *FilterAdditionalLayerInformation(Image *image,
   info=GetImageProfile(image,PSDAdditionalInfo);
   if (info == (const StringInfo *) NULL)
     return((const StringInfo *) NULL);
+  option=GetImageOption(image_info,"psd:additional-info");
+  if (LocaleCompare(option,"all") == 0)
+    return(info);
+  if (LocaleCompare(option,"selective") != 0)
+    {
+      profile=RemoveImageProfile(image,PSDAdditionalInfo);
+      return(DestroyStringInfo(profile));
+    }
   length=GetStringInfoLength(info);
   p=GetStringInfoDatum(info);
   remaining_length=length;
@@ -2955,7 +2964,7 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,
         layer_length=strlen(property);
         layer_info_size+=8+layer_length+(4-(layer_length % 4));
       }
-    info=FilterAdditionalLayerInformation(next_image,exception);
+    info=GetAdditionalInformation(image_info,next_image,exception);
     if (info != (const StringInfo *) NULL)
       layer_info_size+=GetStringInfoLength(info);
     layer_count++;