MagickCore 6.9.12
resize.c File Reference
#include "magick/studio.h"
#include "magick/accelerate-private.h"
#include "magick/artifact.h"
#include "magick/blob.h"
#include "magick/cache.h"
#include "magick/cache-view.h"
#include "magick/channel.h"
#include "magick/color.h"
#include "magick/color-private.h"
#include "magick/draw.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/gem.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/list.h"
#include "magick/memory_.h"
#include "magick/memory-private.h"
#include "magick/magick.h"
#include "magick/pixel-private.h"
#include "magick/property.h"
#include "magick/monitor.h"
#include "magick/monitor-private.h"
#include "magick/nt-base-private.h"
#include "magick/pixel.h"
#include "magick/option.h"
#include "magick/resample.h"
#include "magick/resample-private.h"
#include "magick/resize.h"
#include "magick/resize-private.h"
#include "magick/resource_.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/thread-private.h"
#include "magick/token.h"
#include "magick/utility.h"
#include "magick/version.h"
Include dependency graph for resize.c:

Go to the source code of this file.

Data Structures

struct  _ResizeFilter
 
struct  _ContributionInfo
 

Macros

#define InterpolativeResizeImageTag   "Resize/Image"
 
#define MagnifyImageTag   "Magnify/Image"
 
#define ResampleImageTag   "Resample/Image"
 
#define ResizeImageTag   "Resize/Image"
 
#define SampleImageTag   "Sample/Image"
 
#define ScaleImageTag   "Scale/Image"
 
#define SampleFactor   5
 

Typedefs

typedef struct _ContributionInfo ContributionInfo
 

Functions

static MagickRealType I0 (MagickRealType x)
 
static MagickRealType BesselOrderOne (MagickRealType)
 
static MagickRealType Sinc (const MagickRealType, const ResizeFilter *)
 
static MagickRealType SincFast (const MagickRealType, const ResizeFilter *)
 
static MagickRealType Blackman (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Bohman (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Box (const MagickRealType magick_unused(x), const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Cosine (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType CubicBC (const MagickRealType x, const ResizeFilter *resize_filter)
 
static MagickRealType Gaussian (const MagickRealType x, const ResizeFilter *resize_filter)
 
static MagickRealType Hanning (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Hamming (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Jinc (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Kaiser (const MagickRealType x, const ResizeFilter *resize_filter)
 
static MagickRealType Lagrange (const MagickRealType x, const ResizeFilter *resize_filter)
 
static MagickRealType Quadratic (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Sinc (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType SincFast (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Triangle (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
static MagickRealType Welsh (const MagickRealType x, const ResizeFilter *magick_unused(resize_filter))
 
MagickExport ResizeFilterAcquireResizeFilter (const Image *image, const FilterTypes filter, const MagickRealType blur, const MagickBooleanType cylindrical, ExceptionInfo *exception)
 
MagickExport ImageAdaptiveResizeImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 
static MagickRealType J1 (MagickRealType x)
 
static MagickRealType P1 (MagickRealType x)
 
static MagickRealType Q1 (MagickRealType x)
 
MagickExport ResizeFilterDestroyResizeFilter (ResizeFilter *resize_filter)
 
MagickExport MagickRealTypeGetResizeFilterCoefficient (const ResizeFilter *resize_filter)
 
MagickExport MagickRealType GetResizeFilterBlur (const ResizeFilter *resize_filter)
 
MagickExport MagickRealType GetResizeFilterScale (const ResizeFilter *resize_filter)
 
MagickExport MagickRealType GetResizeFilterWindowSupport (const ResizeFilter *resize_filter)
 
MagickExport ResizeWeightingFunctionType GetResizeFilterWeightingType (const ResizeFilter *resize_filter)
 
MagickExport ResizeWeightingFunctionType GetResizeFilterWindowWeightingType (const ResizeFilter *resize_filter)
 
MagickExport MagickRealType GetResizeFilterSupport (const ResizeFilter *resize_filter)
 
MagickExport MagickRealType GetResizeFilterWeight (const ResizeFilter *resize_filter, const MagickRealType x)
 
MagickExport ImageInterpolativeResizeImage (const Image *image, const size_t columns, const size_t rows, const InterpolatePixelMethod method, ExceptionInfo *exception)
 
MagickExport ImageLiquidRescaleImage (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)
 
MagickExport ImageMagnifyImage (const Image *image, ExceptionInfo *exception)
 
MagickExport ImageMinifyImage (const Image *image, ExceptionInfo *exception)
 
MagickExport ImageResampleImage (const Image *image, const double x_resolution, const double y_resolution, const FilterTypes filter, const double blur, ExceptionInfo *exception)
 
static ContributionInfo ** DestroyContributionTLS (ContributionInfo **contribution)
 
static ContributionInfo ** AcquireContributionTLS (const size_t count)
 
static MagickBooleanType HorizontalFilter (const ResizeFilter *magick_restrict resize_filter, const Image *magick_restrict image, Image *magick_restrict resize_image, const MagickRealType x_factor, const MagickSizeType span, MagickOffsetType *magick_restrict offset, ExceptionInfo *exception)
 
static MagickBooleanType VerticalFilter (const ResizeFilter *magick_restrict resize_filter, const Image *magick_restrict image, Image *magick_restrict resize_image, const MagickRealType y_factor, const MagickSizeType span, MagickOffsetType *magick_restrict offset, ExceptionInfo *exception)
 
MagickExport ImageResizeImage (const Image *image, const size_t columns, const size_t rows, const FilterTypes filter, const double blur, ExceptionInfo *exception)
 
MagickExport ImageSampleImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 
MagickExport ImageScaleImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 
MagickExport ImageThumbnailImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 

Macro Definition Documentation

◆ InterpolativeResizeImageTag

#define InterpolativeResizeImageTag   "Resize/Image"

◆ MagnifyImageTag

#define MagnifyImageTag   "Magnify/Image"

◆ ResampleImageTag

#define ResampleImageTag   "Resample/Image"

◆ ResizeImageTag

#define ResizeImageTag   "Resize/Image"

◆ SampleFactor

#define SampleFactor   5

◆ SampleImageTag

#define SampleImageTag   "Sample/Image"

◆ ScaleImageTag

#define ScaleImageTag   "Scale/Image"

Typedef Documentation

◆ ContributionInfo

Function Documentation

◆ AcquireContributionTLS()

static ContributionInfo ** AcquireContributionTLS ( const size_t  count)
static

◆ AcquireResizeFilter()

MagickExport ResizeFilter * AcquireResizeFilter ( const Image image,
const FilterTypes  filter,
const MagickRealType  blur,
const MagickBooleanType  cylindrical,
ExceptionInfo exception 
)

Definition at line 719 of file resize.c.

References AcquireMagickMemory(), Blackman(), BlackmanFilter, BlackmanWeightingFunction, _ResizeFilter::blur, Bohman(), BohmanFilter, BohmanWeightingFunction, Box(), BoxFilter, BoxWeightingFunction, CatromFilter, _ResizeFilter::coefficient, CommandOptionToMnemonic(), Cosine(), CosineFilter, CosineWeightingFunction, CubicBC(), CubicBCWeightingFunction, CubicFilter, DeleteImageArtifact(), _Image::filename, _ResizeFilter::filter, _ResizeFilter::filterWeightingType, FormatLocaleFile(), Gaussian(), GaussianFilter, GaussianWeightingFunction, GetImageArtifact(), GetMagickModule, GetMagickPrecision(), GetResizeFilterSupport(), GetResizeFilterWeight(), Hamming(), HammingFilter, HammingWeightingFunction, Hanning(), HanningFilter, HanningWeightingFunction, HermiteFilter, I0(), IsEventLogging(), IsMagickTrue(), Jinc(), JincFilter, JincWeightingFunction, Kaiser(), KaiserFilter, KaiserWeightingFunction, Lagrange(), LagrangeFilter, LagrangeWeightingFunction, Lanczos2Filter, Lanczos2SharpFilter, LanczosFilter, LanczosRadiusFilter, LanczosSharpFilter, LogMagickEvent(), Magick2PI, MagickCoreSignature, MagickEpsilon, MagickFalse, MagickFilterOptions, MagickPI, MagickSQ1_2, MitchellFilter, ParseCommandOption(), PerceptibleReciprocal(), PointFilter, Quadratic(), QuadraticFilter, QuadraticWeightingFunction, ResourceLimitFatalError, RobidouxFilter, RobidouxSharpFilter, _ResizeFilter::scale, SentinelFilter, _ExceptionInfo::signature, _Image::signature, _ResizeFilter::signature, Sinc(), SincFast(), SincFastFilter, SincFastWeightingFunction, SincFilter, SincWeightingFunction, SplineFilter, StringToDouble(), StringToLong(), _ResizeFilter::support, ThrowFatalException, TraceEvent, Triangle(), TriangleFilter, TriangleWeightingFunction, UndefinedFilter, Welsh(), WelshFilter, WelshWeightingFunction, _ResizeFilter::window, _ResizeFilter::window_support, and _ResizeFilter::windowWeightingType.

Referenced by ResizeImage().

◆ AdaptiveResizeImage()

MagickExport Image * AdaptiveResizeImage ( const Image image,
const size_t  columns,
const size_t  rows,
ExceptionInfo exception 
)

Definition at line 1245 of file resize.c.

References InterpolativeResizeImage(), and MeshInterpolatePixel.

◆ BesselOrderOne()

static MagickRealType BesselOrderOne ( MagickRealType  x)

Definition at line 1442 of file resize.c.

References J1(), MagickPI, P1(), and Q1().

Referenced by Jinc().

◆ Blackman()

static MagickRealType Blackman ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 148 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

◆ Bohman()

static MagickRealType Bohman ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 163 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

◆ Box()

static MagickRealType Box ( const MagickRealType   magick_unusedx,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 180 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter(), and GetResizeFilterWeight().

◆ Cosine()

static MagickRealType Cosine ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 194 of file resize.c.

References magick_unreferenced, and MagickPI2.

Referenced by AcquireResizeFilter().

◆ CubicBC()

static MagickRealType CubicBC ( const MagickRealType  x,
const ResizeFilter resize_filter 
)
static

Definition at line 205 of file resize.c.

References _ResizeFilter::coefficient.

Referenced by AcquireResizeFilter().

◆ DestroyContributionTLS()

static ContributionInfo ** DestroyContributionTLS ( ContributionInfo **  contribution)
static

◆ DestroyResizeFilter()

MagickExport ResizeFilter * DestroyResizeFilter ( ResizeFilter resize_filter)

◆ Gaussian()

static MagickRealType Gaussian ( const MagickRealType  x,
const ResizeFilter resize_filter 
)
static

Definition at line 246 of file resize.c.

References _ResizeFilter::coefficient.

Referenced by AcquireResizeFilter().

◆ GetResizeFilterBlur()

MagickExport MagickRealType GetResizeFilterBlur ( const ResizeFilter resize_filter)

Definition at line 1526 of file resize.c.

References _ResizeFilter::blur, MagickCoreSignature, and _ResizeFilter::signature.

◆ GetResizeFilterCoefficient()

MagickExport MagickRealType * GetResizeFilterCoefficient ( const ResizeFilter resize_filter)

◆ GetResizeFilterScale()

MagickExport MagickRealType GetResizeFilterScale ( const ResizeFilter resize_filter)

Definition at line 1534 of file resize.c.

References MagickCoreSignature, _ResizeFilter::scale, and _ResizeFilter::signature.

◆ GetResizeFilterSupport()

MagickExport MagickRealType GetResizeFilterSupport ( const ResizeFilter resize_filter)

◆ GetResizeFilterWeight()

◆ GetResizeFilterWeightingType()

MagickExport ResizeWeightingFunctionType GetResizeFilterWeightingType ( const ResizeFilter resize_filter)

◆ GetResizeFilterWindowSupport()

MagickExport MagickRealType GetResizeFilterWindowSupport ( const ResizeFilter resize_filter)

◆ GetResizeFilterWindowWeightingType()

MagickExport ResizeWeightingFunctionType GetResizeFilterWindowWeightingType ( const ResizeFilter resize_filter)

◆ Hamming()

static MagickRealType Hamming ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 294 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

◆ Hanning()

static MagickRealType Hanning ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 282 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

◆ HorizontalFilter()

◆ I0()

static MagickRealType I0 ( MagickRealType  x)
static

Definition at line 1292 of file resize.c.

References MagickEpsilon.

Referenced by AcquireResizeFilter(), and Kaiser().

◆ InterpolativeResizeImage()

◆ J1()

static MagickRealType J1 ( MagickRealType  x)
static

Definition at line 1317 of file resize.c.

Referenced by BesselOrderOne().

◆ Jinc()

static MagickRealType Jinc ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 306 of file resize.c.

References BesselOrderOne(), magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

◆ Kaiser()

static MagickRealType Kaiser ( const MagickRealType  x,
const ResizeFilter resize_filter 
)
static

Definition at line 324 of file resize.c.

References _ResizeFilter::coefficient, and I0().

Referenced by AcquireResizeFilter().

◆ Lagrange()

static MagickRealType Lagrange ( const MagickRealType  x,
const ResizeFilter resize_filter 
)
static

Definition at line 343 of file resize.c.

References _ResizeFilter::support, and _ResizeFilter::window_support.

Referenced by AcquireResizeFilter().

◆ LiquidRescaleImage()

MagickExport Image * LiquidRescaleImage ( const Image image,
const size_t   magick_unusedcolumns,
const size_t   magick_unusedrows,
const double   magick_unuseddelta_x,
const double   magick_unusedrigidity,
ExceptionInfo exception 
)

◆ MagnifyImage()

◆ MinifyImage()

◆ P1()

static MagickRealType P1 ( MagickRealType  x)
static

Definition at line 1363 of file resize.c.

Referenced by BesselOrderOne().

◆ Q1()

static MagickRealType Q1 ( MagickRealType  x)
static

Definition at line 1403 of file resize.c.

Referenced by BesselOrderOne().

◆ Quadratic()

static MagickRealType Quadratic ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 377 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().

◆ ResampleImage()

MagickExport Image * ResampleImage ( const Image image,
const double  x_resolution,
const double  y_resolution,
const FilterTypes  filter,
const double  blur,
ExceptionInfo exception 
)

◆ ResizeImage()

◆ SampleImage()

◆ ScaleImage()

◆ Sinc() [1/2]

static MagickRealType Sinc ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 392 of file resize.c.

References magick_unreferenced, and MagickPI.

◆ Sinc() [2/2]

static MagickRealType Sinc ( const  MagickRealType,
const ResizeFilter  
)

Referenced by AcquireResizeFilter().

◆ SincFast() [1/2]

static MagickRealType SincFast ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 409 of file resize.c.

References magick_unreferenced, and MagickPI.

◆ SincFast() [2/2]

static MagickRealType SincFast ( const  MagickRealType,
const ResizeFilter  
)

Referenced by AcquireResizeFilter().

◆ ThumbnailImage()

◆ Triangle()

static MagickRealType Triangle ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 505 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().

◆ VerticalFilter()

◆ Welsh()

static MagickRealType Welsh ( const MagickRealType  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 520 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().