static MagickRealType Lagrange(const MagickRealType x,
const ResizeFilter *resize_filter)
{
- ssize_t
- n,
- order;
-
MagickRealType
value;
register ssize_t
i;
+ ssize_t
+ n,
+ order;
+
/*
Lagrange Piece-Wise polynomial fit of Sinc: N is the 'order' of the
lagrange function and depends on the overall support window size of the
filter_type,
window_type;
- ssize_t
- option;
-
MagickRealType
B,
C;
register ResizeFilter
*resize_filter;
+ ssize_t
+ option;
+
/*
Table Mapping given Filter, into Weighting and Windowing functions. A
'Box' windowing function means its a simble non-windowed filter. A 'Sinc'
artifact=GetImageArtifact(image,"filter:filter");
if (artifact != (const char *) NULL)
{
- option=ParseMagickOption(MagickFilterOptions,MagickFalse,
- artifact);
+ option=ParseMagickOption(MagickFilterOptions,MagickFalse,artifact);
if ((UndefinedFilter < option) && (option < SentinelFilter))
{
/*
artifact=GetImageArtifact(image,"filter:window");
if (artifact != (const char *) NULL)
{
- option=ParseMagickOption(MagickFilterOptions,MagickFalse,
- artifact);
+ option=ParseMagickOption(MagickFilterOptions,MagickFalse,artifact);
if ((UndefinedFilter < option) && (option < SentinelFilter))
{
if (option != LanczosFilter)
window_type=(FilterTypes) option;
- else
- window_type=cylindrical != MagickFalse ? BesselFilter :
- SincFilter;
- }
+ else
+ window_type=cylindrical != MagickFalse ? BesselFilter :
+ SincFilter;
+ }
}
}
else
Output filter graph -- for graphing filter result.
*/
support=GetResizeFilterSupport(resize_filter);
- (void) printf("# support = %g\n",support);
+ (void) fprintf(stdout,"# support = %g\n",support);
for (x=0.0; x <= support; x+=0.01f)
- (void) printf("%5.2lf\t%lf\n",x,(double) GetResizeFilterWeight(
+ (void) fprintf(stdout,"%5.2lf\t%lf\n",x,(double) GetResizeFilterWeight(
resize_filter,x));
- (void) printf("%5.2lf\t%lf\n",support,0.0);
+ (void) fprintf(stdout,"%5.2lf\t%lf\n",support,0.0);
}
return(resize_filter);
}
%
% The format of the AdaptiveResizeImage method is:
%
-% Image *AdaptiveResizeImage(const Image *image,
-% const size_t columns,const size_t rows,
-% ExceptionInfo *exception)
+% Image *AdaptiveResizeImage(const Image *image,const size_t columns,
+% const size_t rows,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
Image
*resize_image;
- ssize_t
- y;
-
MagickBooleanType
proceed;
ResampleFilter
*resample_filter;
+ ssize_t
+ y;
+
/*
Adaptively resize image.
*/
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickSignature);
- width=(size_t) (x_resolution*image->columns/
- (image->x_resolution == 0.0 ? 72.0 : image->x_resolution)+0.5);
- height=(size_t) (y_resolution*image->rows/
- (image->y_resolution == 0.0 ? 72.0 : image->y_resolution)+0.5);
+ width=(size_t) (x_resolution*image->columns/(image->x_resolution == 0.0 ?
+ 72.0 : image->x_resolution)+0.5);
+ height=(size_t) (y_resolution*image->rows/(image->y_resolution == 0.0 ?
+ 72.0 : image->y_resolution)+0.5);
resample_image=ResizeImage(image,width,height,filter,blur,exception);
if (resample_image != (Image *) NULL)
{
% o exception: return any errors or warnings in this structure.
%
*/
-MagickExport Image *LiquidRescaleImage(const Image *image,
- const size_t columns,const size_t rows,
- const double delta_x,const double rigidity,ExceptionInfo *exception)
+MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
+ const size_t rows,const double delta_x,const double rigidity,
+ ExceptionInfo *exception)
{
#define LiquidRescaleImageTag "Rescale/Image"
}
#else
MagickExport Image *LiquidRescaleImage(const Image *image,
- const size_t magick_unused(columns),
- const size_t magick_unused(rows),const double magick_unused(delta_x),
- const double magick_unused(rigidity),ExceptionInfo *exception)
+ const size_t magick_unused(columns),const size_t magick_unused(rows),
+ const double magick_unused(delta_x),const double magick_unused(rigidity),
+ ExceptionInfo *exception)
{
assert(image != (const Image *) NULL);
assert(image->signature == MagickSignature);
%
% o filter: Image filter to use.
%
-% o blur: the blur factor where > 1 is blurry, < 1 is sharp.
-% Typically set this to 1.0.
+% o blur: the blur factor where > 1 is blurry, < 1 is sharp. Typically set
+% this to 1.0.
%
% o exception: return any errors or warnings in this structure.
%
static MagickBooleanType HorizontalFilter(const ResizeFilter *resize_filter,
const Image *image,Image *resize_image,const MagickRealType x_factor,
- const MagickSizeType span,MagickOffsetType *quantum,ExceptionInfo *exception)
+ const MagickSizeType span,MagickOffsetType *offset,ExceptionInfo *exception)
{
#define ResizeImageTag "Resize/Image"
ContributionInfo
**restrict contributions;
- ssize_t
- x;
-
MagickBooleanType
status;
scale,
support;
+ ssize_t
+ x;
+
/*
Apply filter to resize horizontally from image to resize image.
*/
#endif
for (x=0; x < (ssize_t) resize_image->columns; x++)
{
- ssize_t
- n,
- start,
- stop;
-
MagickRealType
center,
density;
register PixelPacket
*restrict q;
+ ssize_t
+ n,
+ start,
+ stop;
+
if (status == MagickFalse)
continue;
center=(MagickRealType) (x+0.5)/x_factor;
for (i=0; i < n; i++)
contribution[i].weight*=density;
}
- p=GetCacheViewVirtualPixels(image_view,contribution[0].pixel,0,
- (size_t) (contribution[n-1].pixel-contribution[0].pixel+1),
- image->rows,exception);
+ p=GetCacheViewVirtualPixels(image_view,contribution[0].pixel,0,(size_t)
+ (contribution[n-1].pixel-contribution[0].pixel+1),image->rows,exception);
q=QueueCacheViewAuthenticPixels(resize_view,x,0,1,resize_image->rows,
exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
resize_indexes=GetCacheViewAuthenticIndexQueue(resize_view);
for (y=0; y < (ssize_t) resize_image->rows; y++)
{
- ssize_t
- j;
-
MagickPixelPacket
pixel;
register ssize_t
i;
+ ssize_t
+ j;
+
pixel=zero;
if (image->matte == MagickFalse)
{
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp critical (MagickCore_HorizontalFilter)
#endif
- proceed=SetImageProgress(image,ResizeImageTag,(*quantum)++,span);
+ proceed=SetImageProgress(image,ResizeImageTag,(*offset)++,span);
if (proceed == MagickFalse)
status=MagickFalse;
}
static MagickBooleanType VerticalFilter(const ResizeFilter *resize_filter,
const Image *image,Image *resize_image,const MagickRealType y_factor,
- const MagickSizeType span,MagickOffsetType *quantum,ExceptionInfo *exception)
+ const MagickSizeType span,MagickOffsetType *offset,ExceptionInfo *exception)
{
CacheView
*image_view,
ContributionInfo
**restrict contributions;
- ssize_t
- y;
-
MagickBooleanType
status;
scale,
support;
+ ssize_t
+ y;
+
/*
- Apply filter to resize vertically from image to resize_image.
+ Apply filter to resize vertically from image to resize image.
*/
scale=MagickMax(1.0/y_factor,1.0);
support=scale*GetResizeFilterSupport(resize_filter);
#endif
for (y=0; y < (ssize_t) resize_image->rows; y++)
{
- ssize_t
- n,
- start,
- stop;
-
MagickRealType
center,
density;
register IndexPacket
*restrict resize_indexes;
+ register PixelPacket
+ *restrict q;
+
register ssize_t
x;
- register PixelPacket
- *restrict q;
+ ssize_t
+ n,
+ start,
+ stop;
if (status == MagickFalse)
continue;
contribution[i].weight*=density;
}
p=GetCacheViewVirtualPixels(image_view,0,contribution[0].pixel,
- image->columns,(size_t) (contribution[n-1].pixel-
- contribution[0].pixel+1),exception);
+ image->columns,(size_t) (contribution[n-1].pixel-contribution[0].pixel+1),
+ exception);
q=QueueCacheViewAuthenticPixels(resize_view,0,y,resize_image->columns,1,
exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
resize_indexes=GetCacheViewAuthenticIndexQueue(resize_view);
for (x=0; x < (ssize_t) resize_image->columns; x++)
{
- ssize_t
- j;
-
MagickPixelPacket
pixel;
register ssize_t
i;
+ ssize_t
+ j;
+
pixel=zero;
if (image->matte == MagickFalse)
{
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp critical (MagickCore_VerticalFilter)
#endif
- proceed=SetImageProgress(image,ResizeImageTag,(*quantum)++,span);
+ proceed=SetImageProgress(image,ResizeImageTag,(*offset)++,span);
if (proceed == MagickFalse)
status=MagickFalse;
}
*filter_image,
*resize_image;
+ MagickOffsetType
+ offset;
+
MagickRealType
x_factor,
y_factor;
ResizeFilter
*resize_filter;
- MagickOffsetType
- quantum;
-
/*
Acquire resize image.
*/
/*
Resize image.
*/
- quantum=0;
+ offset=0;
if ((x_factor*y_factor) > WorkLoadFactor)
{
span=(MagickSizeType) (filter_image->columns+rows);
status=HorizontalFilter(resize_filter,image,filter_image,x_factor,span,
- &quantum,exception);
+ &offset,exception);
status&=VerticalFilter(resize_filter,filter_image,resize_image,y_factor,
- span,&quantum,exception);
+ span,&offset,exception);
}
else
{
span=(MagickSizeType) (filter_image->rows+columns);
status=VerticalFilter(resize_filter,image,filter_image,y_factor,span,
- &quantum,exception);
+ &offset,exception);
status&=HorizontalFilter(resize_filter,filter_image,resize_image,x_factor,
- span,&quantum,exception);
+ span,&offset,exception);
}
/*
Free resources.
#endif
for (y=0; y < (ssize_t) sample_image->rows; y++)
{
- ssize_t
- y_offset;
-
register const IndexPacket
*restrict indexes;
register PixelPacket
*restrict q;
+ ssize_t
+ y_offset;
+
if (status == MagickFalse)
continue;
- y_offset=(ssize_t) (((MagickRealType) y+0.5)*image->rows/sample_image->rows);
+ y_offset=(ssize_t) (((MagickRealType) y+0.5)*image->rows/
+ sample_image->rows);
p=GetCacheViewVirtualPixels(image_view,0,y_offset,image->columns,1,
exception);
q=QueueCacheViewAuthenticPixels(sample_view,0,y,sample_image->columns,1,
Image
*scale_image;
- ssize_t
- number_rows,
- y;
-
MagickBooleanType
next_column,
next_row,
register ssize_t
i;
+ ssize_t
+ number_rows,
+ y;
+
/*
Initialize scaled image attributes.
*/
register IndexPacket
*restrict scale_indexes;
- register ssize_t
- x;
-
register MagickPixelPacket
*restrict s,
*restrict t;
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
q=QueueCacheViewAuthenticPixels(scale_view,0,y,scale_image->columns,1,
exception);
if (q == (PixelPacket *) NULL)
*/
while (scale.y < span.y)
{
- if ((next_row != MagickFalse) && (number_rows < (ssize_t) image->rows))
+ if ((next_row != MagickFalse) &&
+ (number_rows < (ssize_t) image->rows))
{
/*
Read a new scanline.
x_vector[x].blue=(MagickRealType) GetBluePixelComponent(p);
if (image->matte != MagickFalse)
x_vector[x].opacity=(MagickRealType)
- GetOpacityPixelComponent(p);
+ GetOpacityPixelComponent(p);
if (indexes != (IndexPacket *) NULL)
x_vector[x].index=(MagickRealType) indexes[x];
p++;
% o exception: return any errors or warnings in this structure.
%
*/
-MagickExport Image *ThumbnailImage(const Image *image,
- const size_t columns,const size_t rows,ExceptionInfo *exception)
+MagickExport Image *ThumbnailImage(const Image *image,const size_t columns,
+ const size_t rows,ExceptionInfo *exception)
{
#define SampleFactor 5
x_factor,
y_factor;
- struct stat
- attributes;
-
size_t
version;
+ struct stat
+ attributes;
+
assert(image != (Image *) NULL);
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)