Packbits compression.
*/
(void) WriteBlobMSBShort(image,1);
- if (tmp_image->matte != MagickFalse)
- WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
- compact_pixels,AlphaQuantum);
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
compact_pixels,RedQuantum);
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
if (tmp_image->colorspace == CMYKColorspace)
WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
compact_pixels,BlackQuantum);
+ if (tmp_image->matte != MagickFalse)
+ WritePackbitsLength(psd_info,image_info,image,tmp_image,pixels,
+ compact_pixels,AlphaQuantum);
}
(void) SetImageProgress(image,SaveImagesTag,0,6);
- if (tmp_image->matte != MagickFalse)
- WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
- compact_pixels,AlphaQuantum,(i++ == 0) ||
- (separate != MagickFalse) ? MagickTrue : MagickFalse);
- (void) SetImageProgress(image,SaveImagesTag,1,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
compact_pixels,RedQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
- (void) SetImageProgress(image,SaveImagesTag,2,6);
+ (void) SetImageProgress(image,SaveImagesTag,1,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
compact_pixels,GreenQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
- (void) SetImageProgress(image,SaveImagesTag,3,6);
+ (void) SetImageProgress(image,SaveImagesTag,2,6);
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
compact_pixels,BlueQuantum,(i++ == 0) || (separate != MagickFalse) ?
MagickTrue : MagickFalse);
- (void) SetImageProgress(image,SaveImagesTag,4,6);
+ (void) SetImageProgress(image,SaveImagesTag,3,6);
if (tmp_image->colorspace == CMYKColorspace)
{
WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
(separate != MagickFalse) ? MagickTrue : MagickFalse);
(void) NegateImage(tmp_image,MagickFalse);
}
+ (void) SetImageProgress(image,SaveImagesTag,4,6);
+ if (tmp_image->matte != MagickFalse)
+ WriteOneChannel(psd_info,image_info,image,tmp_image,pixels,
+ compact_pixels,AlphaQuantum,(i++ == 0) ||
+ (separate != MagickFalse) ? MagickTrue : MagickFalse);
(void) SetImageProgress(image,SaveImagesTag,5,6);
}
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
*icc_profile;
MagickBooleanType
- invert_layer_count,
status;
PSDInfo
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
return(status);
- invert_layer_count=MagickFalse;
packet_size=(size_t) (image->depth > 8 ? 6 : 3);
if (image->matte != MagickFalse)
packet_size+=image->depth > 8 ? 2 : 1;
(void) WriteBlobByte(image,0);
}
-compute_layer_info:
layer_count = 0;
layer_info_size = 2;
tmp_image = base_image;
layer_count++;
tmp_image = GetNextImageInList(tmp_image);
}
- if ((layer_count == 0) && (image->matte == MagickTrue))
- {
- /*
- Image with matte channel requires layers.
- */
- invert_layer_count=MagickTrue;
- base_image=image;
- goto compute_layer_info;
- }
if (layer_count == 0)
(void) SetPSDSize(&psd_info,image,0);
else
else
rounded_layer_info_size = layer_info_size;
(void) SetPSDSize(&psd_info,image,rounded_layer_info_size);
- if (invert_layer_count != MagickFalse)
- layer_count*=(-1); /* if we have a matte, then use negative count! */
(void) WriteBlobMSBShort(image,(unsigned short) layer_count);
layer_count=1;
tmp_image = base_image;