From: cristy Date: Fri, 21 May 2010 13:14:10 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~9419 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9ce07f6e2188e321af19ac52d1e88db51012de3a;p=imagemagick --- diff --git a/ChangeLog b/ChangeLog index e6d43d94f..2bcbe6621 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,8 @@ 2010-05-17 6.6.2-0 Cristy * PSD images require a proper layer to support an alpha channel. * Enable PFM endian support. + * Add context to -border for montage. Inside the parenthesis it adds a border + to the image otherwise it sets the border for the layout manager. 2010-05-15 6.6.1-10 Cristy * Use ScaleCharToQuantum() in coders/src.c (reference diff --git a/coders/psd.c b/coders/psd.c index 8200e50c5..48e0e60d2 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -2203,36 +2203,32 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image) (tmp_image->storage_class == PseudoClass)) { (void) WriteBlobMSBShort(image,(unsigned short) (tmp_image->matte != MagickFalse ? 2 : 1)); + (void) WriteBlobMSBShort(image, 0); + (void) SetPSDSize(&psd_info,image,channel_size); if (tmp_image->matte != MagickFalse) { - (void) WriteBlobMSBShort(image,(unsigned short) -1); + (void) WriteBlobMSBShort(image,(unsigned short) 1); (void) SetPSDSize(&psd_info,image,channel_size); } - (void) WriteBlobMSBShort(image, 0); - (void) SetPSDSize(&psd_info,image,channel_size); } else if (tmp_image->colorspace != CMYKColorspace) { (void) WriteBlobMSBShort(image,(unsigned short) (tmp_image->matte != MagickFalse ? 4 : 3)); - if (tmp_image->matte!= MagickFalse ) { - (void) WriteBlobMSBShort(image,(unsigned short) -1); - (void) SetPSDSize(&psd_info,image,channel_size); - } (void) WriteBlobMSBShort(image, 0); (void) SetPSDSize(&psd_info,image,channel_size); (void) WriteBlobMSBShort(image, 1); (void) SetPSDSize(&psd_info,image,channel_size); (void) WriteBlobMSBShort(image, 2); (void) SetPSDSize(&psd_info,image,channel_size); + if (tmp_image->matte!= MagickFalse ) { + (void) WriteBlobMSBShort(image,(unsigned short) 3); + (void) SetPSDSize(&psd_info,image,channel_size); + } } else { (void) WriteBlobMSBShort(image,(unsigned short) (tmp_image->matte ? 5 : 4)); - if (tmp_image->matte) { - (void) WriteBlobMSBShort(image,(unsigned short) -1); - (void) SetPSDSize(&psd_info,image,channel_size); - } (void) WriteBlobMSBShort(image, 0); (void) SetPSDSize(&psd_info,image,channel_size); (void) WriteBlobMSBShort(image, 1); @@ -2241,6 +2237,10 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image) (void) SetPSDSize(&psd_info,image,channel_size); (void) WriteBlobMSBShort(image, 3); (void) SetPSDSize(&psd_info,image,channel_size); + if (tmp_image->matte) { + (void) WriteBlobMSBShort(image,(unsigned short) 4); + (void) SetPSDSize(&psd_info,image,channel_size); + } } (void) WriteBlob(image,4,(const unsigned char *) "8BIM"); diff --git a/wand/montage.c b/wand/montage.c index e662999a3..72f7efd58 100644 --- a/wand/montage.c +++ b/wand/montage.c @@ -527,8 +527,11 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, } if (LocaleCompare("border",option+1) == 0) { - (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); - montage_info->border_width=0; + if (k == 0) + { + (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); + montage_info->border_width=0; + } if (*option == '+') break; i++; @@ -536,7 +539,8 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, ThrowMontageException(OptionError,"MissingArgument",option); if (IsGeometry(argv[i]) == MagickFalse) ThrowMontageInvalidArgumentException(option,argv[i]); - montage_info->border_width=StringToUnsignedLong(argv[i]); + if (k == 0) + montage_info->border_width=StringToUnsignedLong(argv[i]); break; } if (LocaleCompare("bordercolor",option+1) == 0) @@ -939,8 +943,11 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, } if (LocaleCompare("frame",option+1) == 0) { - (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); - (void) CloneString(&montage_info->frame,(char *) NULL); + if (k == 0) + { + (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); + (void) CloneString(&montage_info->frame,(char *) NULL); + } if (*option == '+') break; i++; @@ -948,7 +955,8 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, ThrowMontageException(OptionError,"MissingArgument",option); if (IsGeometry(argv[i]) == MagickFalse) ThrowMontageInvalidArgumentException(option,argv[i]); - (void) CloneString(&montage_info->frame,argv[i]); + if (k == 0) + (void) CloneString(&montage_info->frame,argv[i]); break; } ThrowMontageException(OptionError,"UnrecognizedOption",option) @@ -1400,8 +1408,20 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, } if (LocaleCompare("shadow",option+1) == 0) { - (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); - montage_info->shadow=(*option == '-') ? MagickTrue : MagickFalse; + if (k == 0) + { + (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); + montage_info->shadow=(*option == '-') ? MagickTrue : + MagickFalse; + break; + } + if (*option == '+') + break; + i++; + if (i == (long) (argc-1)) + ThrowMontageException(OptionError,"MissingArgument",option); + if (IsGeometry(argv[i]) == MagickFalse) + ThrowMontageInvalidArgumentException(option,argv[i]); break; } if (LocaleCompare("sharpen",option+1) == 0) @@ -1482,8 +1502,11 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, } if (LocaleCompare("tile",option+1) == 0) { - (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); - (void) CloneString(&montage_info->tile,(char *) NULL); + if (k == 0) + { + (void) CopyMagickString(argv[i]+1,"sans",MaxTextExtent); + (void) CloneString(&montage_info->tile,(char *) NULL); + } if (*option == '+') break; i++; @@ -1491,7 +1514,8 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, ThrowMontageException(OptionError,"MissingArgument",option); if (IsGeometry(argv[i]) == MagickFalse) ThrowMontageInvalidArgumentException(option,argv[i]); - (void) CloneString(&montage_info->tile,argv[i]); + if (k == 0) + (void) CloneString(&montage_info->tile,argv[i]); break; } if (LocaleCompare("tile-offset",option+1) == 0)