% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% WritePSDImage() writes an image in the Adobe Photoshop encoded image
-% format.
+% WritePSDImage() writes an image in the Adobe Photoshop encoded image format.
%
% The format of the WritePSDImage method is:
%
}
static size_t PSDPackbitsEncodeImage(Image *image,const size_t length,
- const unsigned char *pixels,unsigned char *compressed_pixels)
+ const unsigned char *pixels,unsigned char *compact_pixels)
{
int
count;
if (packbits == (unsigned char *) NULL)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
- q=compressed_pixels;
+ q=compact_pixels;
for (i=(long) length; i != 0; )
{
switch (i)
}
*q++=(unsigned char) 128; /* EOD marker */
packbits=(unsigned char *) RelinquishMagickMemory(packbits);
- return((size_t) (q-compressed_pixels));
+ return((size_t) (q-compact_pixels));
}
static void WritePackbitsLength(const PSDInfo *psd_info,
const ImageInfo *image_info,Image *image,Image *tmp_image,
- unsigned char *pixels,unsigned char *compressed_pixels,
+ unsigned char *pixels,unsigned char *compact_pixels,
const QuantumType quantum_type)
{
int
if (tmp_image->depth > 8)
tmp_image->depth=16;
+ else
+ tmp_image->depth=8;
packet_size=tmp_image->depth > 8UL ? 2UL : 1UL;
quantum_info=AcquireQuantumInfo(image_info,image);
for (y=0; y < (long) tmp_image->rows; y++)
break;
length=ExportQuantumPixels(tmp_image,(CacheView *) NULL,quantum_info,
quantum_type,pixels,&image->exception);
- length=PSDPackbitsEncodeImage(image,length,pixels,compressed_pixels);
+ length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels);
(void) SetPSDOffset(psd_info,image,length);
}
quantum_info=DestroyQuantumInfo(quantum_info);
static void WriteOneChannel(const PSDInfo *psd_info,const ImageInfo *image_info,
Image *image,Image *tmp_image,unsigned char *pixels,
- unsigned char *compressed_pixels,const QuantumType quantum_type,
+ unsigned char *compact_pixels,const QuantumType quantum_type,
const MagickBooleanType compression_flag)
{
int
(void) psd_info;
if ((compression_flag != MagickFalse) &&
- (tmp_image->compression == NoCompression))
+ (tmp_image->compression != RLECompression))
(void) WriteBlobMSBShort(image,0);
if (tmp_image->depth > 8)
tmp_image->depth=16;
+ else
+ tmp_image->depth=8;
packet_size=tmp_image->depth > 8UL ? 2UL : 1UL;
quantum_info=AcquireQuantumInfo(image_info,image);
for (y=0; y < (long) tmp_image->rows; y++)
break;
length=ExportQuantumPixels(tmp_image,(CacheView *) NULL,quantum_info,
quantum_type,pixels,&image->exception);
- if (tmp_image->compression == NoCompression)
+ if (tmp_image->compression != RLECompression)
(void) WriteBlob(image,length,pixels);
else
{
- length=PSDPackbitsEncodeImage(image,length,pixels,compressed_pixels);
- (void) WriteBlob(image,length,compressed_pixels);
+ length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels);
+ (void) WriteBlob(image,length,compact_pixels);
}
}
quantum_info=DestroyQuantumInfo(quantum_info);
packet_size;
unsigned char
- *compressed_pixels,
+ *compact_pixels,
*pixels;
/*
packet_size=tmp_image->depth > 8UL ? 2UL : 1UL;
pixels=(unsigned char *) AcquireQuantumMemory(channels*tmp_image->columns,
packet_size*sizeof(*pixels));
- compressed_pixels=(unsigned char *) AcquireQuantumMemory(2*channels*
+ compact_pixels=(unsigned char *) AcquireQuantumMemory(2*channels*
tmp_image->columns,packet_size*sizeof(*pixels));
if ((pixels == (unsigned char *) NULL) ||
- (compressed_pixels == (unsigned char *) NULL))
+ (compact_pixels == (unsigned char *) NULL))
{
if (pixels != (unsigned char *) NULL)
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
- if (compressed_pixels != (unsigned char *) NULL)
- compressed_pixels=(unsigned char *)
- RelinquishMagickMemory(compressed_pixels);
+ if (compact_pixels != (unsigned char *) NULL)
+ compact_pixels=(unsigned char *)
+ RelinquishMagickMemory(compact_pixels);
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
}
i=0;
if (tmp_image->storage_class == PseudoClass)
{
- if (tmp_image->compression != NoCompression)
+ if (tmp_image->compression == RLECompression)
{
/*
Packbits compression.
(void) WriteBlobMSBShort(image,1);
if (tmp_image->matte == MagickFalse)
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,IndexQuantum);
+ compact_pixels,IndexQuantum);
else
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,IndexAlphaQuantum);
+ compact_pixels,IndexAlphaQuantum);
}
if (tmp_image->matte == MagickFalse)
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,IndexQuantum,(i++ == 0) ||
+ compact_pixels,IndexQuantum,(i++ == 0) ||
(separate != MagickFalse) ? MagickTrue : MagickFalse);
else
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,IndexAlphaQuantum,(i++ == 0) ||
+ compact_pixels,IndexAlphaQuantum,(i++ == 0) ||
(separate != MagickFalse) ? MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,0,1);
}
{
if (tmp_image->colorspace == CMYKColorspace)
(void) NegateImage(image,MagickFalse);
- if (tmp_image->compression != NoCompression)
+ if (tmp_image->compression == RLECompression)
{
/*
Packbits compression.
(void) WriteBlobMSBShort(image,1);
if (tmp_image->matte != MagickFalse)
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,AlphaQuantum);
+ compact_pixels,AlphaQuantum);
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,RedQuantum);
+ compact_pixels,RedQuantum);
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,GreenQuantum);
+ compact_pixels,GreenQuantum);
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,BlueQuantum);
+ compact_pixels,BlueQuantum);
if (tmp_image->colorspace == CMYKColorspace)
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,BlackQuantum);
+ compact_pixels,BlackQuantum);
}
(void) SetImageProgress(image,SaveImagesTag,0,6);
if (tmp_image->matte != MagickFalse)
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,AlphaQuantum,(i++ == 0) ||
+ compact_pixels,AlphaQuantum,(i++ == 0) ||
(separate != MagickFalse) ? MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,1,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,RedQuantum,(i++ == 0) || (separate != MagickFalse) ?
+ compact_pixels,RedQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,2,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,GreenQuantum,(i++ == 0) || (separate != MagickFalse) ?
+ compact_pixels,GreenQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,3,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,BlueQuantum,(i++ == 0) || (separate != MagickFalse) ?
+ compact_pixels,BlueQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,4,6);
if (tmp_image->colorspace == CMYKColorspace)
{
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compressed_pixels,BlackQuantum,(i++ == 0) ||
+ compact_pixels,BlackQuantum,(i++ == 0) ||
(separate != MagickFalse) ? MagickTrue : MagickFalse);
(void) NegateImage(image,MagickFalse);
}