traits;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
resize_traits=GetPixelChannelMapTraits(resize_image,channel);
- if (resize_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (resize_traits == UndefinedPixelTrait))
continue;
if ((resize_traits & CopyPixelTrait) != 0)
{
traits;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
rescale_traits=GetPixelChannelMapTraits(rescale_image,channel);
- if (rescale_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (rescale_traits == UndefinedPixelTrait))
continue;
q[channel]=ClampToQuantum(QuantumRange*packet[i]);
}
k;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
resize_traits=GetPixelChannelMapTraits(resize_image,channel);
- if (resize_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (resize_traits == UndefinedPixelTrait))
continue;
if ((resize_traits & CopyPixelTrait) != 0)
{
k;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
resize_traits=GetPixelChannelMapTraits(resize_image,channel);
- if (resize_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (resize_traits == UndefinedPixelTrait))
continue;
if ((resize_traits & CopyPixelTrait) != 0)
{
traits;
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
sample_traits=GetPixelChannelMapTraits(sample_image,channel);
- if (sample_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (sample_traits == UndefinedPixelTrait))
continue;
q[channel]=p[x_offset[x]*GetPixelChannels(image)+i];
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
scale_traits=GetPixelChannelMapTraits(scale_image,channel);
- if (scale_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (scale_traits == UndefinedPixelTrait))
continue;
if ((scale_traits & BlendPixelTrait) == 0)
{
for (i=0; i < (ssize_t) GetPixelChannels(scale_image); i++)
{
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
scale_traits=GetPixelChannelMapTraits(scale_image,channel);
- if (scale_traits == UndefinedPixelTrait)
+ if ((traits == UndefinedPixelTrait) ||
+ (scale_traits == UndefinedPixelTrait))
continue;
if ((scale_traits & BlendPixelTrait) == 0)
{
MagickOffsetType
progress;
+ OffsetInfo
+ offset;
+
RectangleInfo
bounding_box,
page;
return((Image *) NULL);
crop_image->page.width=image->page.width;
crop_image->page.height=image->page.height;
- if (((ssize_t) (bounding_box.x+bounding_box.width) > (ssize_t) image->page.width) ||
- ((ssize_t) (bounding_box.y+bounding_box.height) > (ssize_t) image->page.height))
+ offset.x=(ssize_t) (bounding_box.x+bounding_box.width);
+ offset.y=(ssize_t) (bounding_box.y+bounding_box.height);
+ if ((offset.x > (ssize_t) image->page.width) ||
+ (offset.y > (ssize_t) image->page.height))
{
crop_image->page.width=bounding_box.width;
crop_image->page.height=bounding_box.height;
}
for (x=0; x < (ssize_t) crop_image->columns; x++)
{
- SetPixelRed(crop_image,GetPixelRed(image,p),q);
- SetPixelGreen(crop_image,GetPixelGreen(image,p),q);
- SetPixelBlue(crop_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(crop_image,GetPixelBlack(image,p),q);
- SetPixelAlpha(crop_image,GetPixelAlpha(image,p),q);
- if (image->storage_class == PseudoClass)
- SetPixelIndex(crop_image,GetPixelIndex(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ crop_traits,
+ traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ crop_traits=GetPixelChannelMapTraits(crop_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (crop_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(crop_image);
}
}
for (x=0; x < (ssize_t) excerpt_image->columns; x++)
{
- SetPixelRed(excerpt_image,GetPixelRed(image,p),q);
- SetPixelGreen(excerpt_image,GetPixelGreen(image,p),q);
- SetPixelBlue(excerpt_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(excerpt_image,GetPixelBlack(image,p),q);
- if (image->storage_class == PseudoClass)
- SetPixelIndex(excerpt_image,GetPixelIndex(image,p),q);
- SetPixelAlpha(excerpt_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ excerpt_traits,
+ traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ excerpt_traits=GetPixelChannelMapTraits(excerpt_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (excerpt_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(excerpt_image);
}
}
for (x=0; x < (ssize_t) flip_image->columns; x++)
{
- SetPixelRed(flip_image,GetPixelRed(image,p),q);
- SetPixelGreen(flip_image,GetPixelGreen(image,p),q);
- SetPixelBlue(flip_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(flip_image,GetPixelBlack(image,p),q);
- if (image->storage_class == PseudoClass)
- SetPixelIndex(flip_image,GetPixelIndex(image,p),q);
- SetPixelAlpha(flip_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ flip_traits,
+ traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ flip_traits=GetPixelChannelMapTraits(flip_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (flip_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(flip_image);
}
q+=GetPixelChannels(flop_image)*flop_image->columns;
for (x=0; x < (ssize_t) flop_image->columns; x++)
{
+ register ssize_t
+ i;
+
q-=GetPixelChannels(flop_image);
- SetPixelRed(flop_image,GetPixelRed(image,p),q);
- SetPixelGreen(flop_image,GetPixelGreen(image,p),q);
- SetPixelBlue(flop_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(flop_image,GetPixelBlack(image,p),q);
- SetPixelAlpha(flop_image,GetPixelAlpha(image,p),q);
- if (image->storage_class == PseudoClass)
- SetPixelIndex(flop_image,GetPixelIndex(image,p),q);
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ flop_traits,
+ traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ flop_traits=GetPixelChannelMapTraits(flop_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (flop_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(flop_view,exception) == MagickFalse)
}
for (x=0; x < (ssize_t) columns; x++)
{
- SetPixelRed(destination,GetPixelRed(source,p),q);
- SetPixelGreen(destination,GetPixelGreen(source,p),q);
- SetPixelBlue(destination,GetPixelBlue(source,p),q);
- if (destination->colorspace == CMYKColorspace)
- SetPixelBlack(destination,GetPixelBlack(source,p),q);
- SetPixelAlpha(destination,GetPixelAlpha(source,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ destination_traits,
+ source_traits;
+
+ source_traits=GetPixelChannelMapTraits(source,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(source,(PixelChannel) i);
+ destination_traits=GetPixelChannelMapTraits(destination,channel);
+ if ((source_traits == UndefinedPixelTrait) ||
+ (destination_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(source);
q+=GetPixelChannels(destination);
}
}
for (x=0; x < splice_geometry.x; x++)
{
- SetPixelRed(splice_image,GetPixelRed(image,p),q);
- SetPixelGreen(splice_image,GetPixelGreen(image,p),q);
- SetPixelBlue(splice_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(splice_image,GetPixelBlack(image,p),q);
- SetPixelAlpha(splice_image,OpaqueAlpha,q);
- if (image->matte != MagickFalse)
- SetPixelAlpha(splice_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ splice_traits,
+ traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ splice_traits=GetPixelChannelMapTraits(splice_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (splice_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(splice_image);
}
q+=GetPixelChannels(splice_image);
for ( ; x < (ssize_t) splice_image->columns; x++)
{
- SetPixelRed(splice_image,GetPixelRed(image,p),q);
- SetPixelGreen(splice_image,GetPixelGreen(image,p),q);
- SetPixelBlue(splice_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(splice_image,GetPixelBlack(image,p),q);
- SetPixelAlpha(splice_image,OpaqueAlpha,q);
- if (image->matte != MagickFalse)
- SetPixelAlpha(splice_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits,
+ splice_traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ splice_traits=GetPixelChannelMapTraits(splice_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (splice_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(splice_image);
}
}
for (x=0; x < splice_geometry.x; x++)
{
- SetPixelRed(splice_image,GetPixelRed(image,p),q);
- SetPixelGreen(splice_image,GetPixelGreen(image,p),q);
- SetPixelBlue(splice_image,GetPixelBlue(image,p),q);
- SetPixelAlpha(splice_image,OpaqueAlpha,q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(splice_image,GetPixelBlack(image,p),q);
- if (image->matte != MagickFalse)
- SetPixelAlpha(splice_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits,
+ splice_traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ splice_traits=GetPixelChannelMapTraits(splice_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (splice_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(splice_image);
}
q+=GetPixelChannels(splice_image);
for ( ; x < (ssize_t) splice_image->columns; x++)
{
- SetPixelRed(splice_image,GetPixelRed(image,p),q);
- SetPixelGreen(splice_image,GetPixelGreen(image,p),q);
- SetPixelBlue(splice_image,GetPixelBlue(image,p),q);
- SetPixelAlpha(splice_image,OpaqueAlpha,q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(splice_image,GetPixelBlack(image,p),q);
- if (image->matte != MagickFalse)
- SetPixelAlpha(splice_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits,
+ splice_traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ splice_traits=GetPixelChannelMapTraits(splice_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (splice_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(splice_image);
}
%
% This should only be used for single images.
%
+% This function destroys what it assumes to be a single image list.
+% If the input image is part of a larger list, all other images in that list
+% will be simply 'lost', not destroyed.
+%
+% Also if the crop generates a list of images only the first image is resized.
+% And finally if the crop succeeds and the resize failed, you will get a
+% cropped image, as well as a 'false' or 'failed' report.
+%
+% This function and should probably be depreciated in favor of direct calls
+% to CropImageToTiles() or ResizeImage(), as appropriate.
+%
% The format of the TransformImage method is:
%
% MagickBooleanType TransformImage(Image **image,const char *crop_geometry,
% o image_geometry: An image geometry string. This geometry defines the
% final size of the image.
%
-*/
-/*
- DANGER: This function destroys what it assumes to be a single image list.
- If the input image is part of a larger list, all other images in that list
- will be simply 'lost', not destroyed.
-
- Also if the crop generates a list of images only the first image is resized.
- And finally if the crop succeeds and the resize failed, you will get a
- cropped image, as well as a 'false' or 'failed' report.
-
- This function and should probably be depreciated in favor of direct calls
- to CropImageToTiles() or ResizeImage(), as appropriate.
-
*/
MagickExport MagickBooleanType TransformImage(Image **image,
const char *crop_geometry,const char *image_geometry)
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- SetPixelRed(transpose_image,GetPixelRed(image,p),q);
- SetPixelGreen(transpose_image,GetPixelGreen(image,p),q);
- SetPixelBlue(transpose_image,GetPixelBlue(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(transpose_image,GetPixelBlack(image,p),q);
- SetPixelAlpha(transpose_image,GetPixelAlpha(image,p),q);
+ register ssize_t
+ i;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits,
+ transpose_traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ transpose_traits=GetPixelChannelMapTraits(transpose_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (transpose_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
q+=GetPixelChannels(transpose_image);
}
register const Quantum
*restrict p;
- register ssize_t
- x;
-
register Quantum
*restrict q;
+ register ssize_t
+ x;
+
if (status == MagickFalse)
continue;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
- q=QueueCacheViewAuthenticPixels(transverse_view,(ssize_t) (image->rows-y-
- 1),0,1,transverse_image->rows,exception);
+ q=QueueCacheViewAuthenticPixels(transverse_view,(ssize_t) (image->rows-y-1),
+ 0,1,transverse_image->rows,exception);
if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
{
status=MagickFalse;
q+=GetPixelChannels(transverse_image)*image->columns;
for (x=0; x < (ssize_t) image->columns; x++)
{
+ register ssize_t
+ i;
+
q-=GetPixelChannels(transverse_image);
- SetPixelRed(transverse_image,GetPixelRed(image,p),q);
- SetPixelGreen(transverse_image,GetPixelGreen(image,p),q);
- SetPixelBlue(transverse_image,GetPixelBlue(image,p),q);
- SetPixelAlpha(transverse_image,GetPixelAlpha(image,p),q);
- if (image->colorspace == CMYKColorspace)
- SetPixelBlack(transverse_image,GetPixelBlack(image,p),q);
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits,
+ transverse_traits;
+
+ traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+ channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+ transverse_traits=GetPixelChannelMapTraits(transverse_image,channel);
+ if ((traits == UndefinedPixelTrait) ||
+ (transverse_traits == UndefinedPixelTrait))
+ continue;
+ q[channel]=p[i];
+ }
p+=GetPixelChannels(image);
}
sync=SyncCacheViewAuthenticPixels(transverse_view,exception);