MagickCore 7.1.0
Convert, Edit, Or Compose Bitmap Images
distort.c File Reference
Include dependency graph for distort.c:

Go to the source code of this file.

Macros

#define DistortResizeImageTag   "Distort/Image"
 
#define DistortImageTag   "Distort/Image"
 
#define InitalBounds(p)
 
#define ExpandBounds(p)
 
#define ScaleFilter(F, A, B, C, D)
 
#define SparseColorTag   "Distort/SparseColor"
 

Functions

static void AffineArgsToCoefficients (double *affine)
 
static void CoefficientsToAffineArgs (double *coeff)
 
static void InvertAffineCoefficients (const double *coeff, double *inverse)
 
static void InvertPerspectiveCoefficients (const double *coeff, double *inverse)
 
static size_t poly_number_terms (double order)
 
static double poly_basis_fn (ssize_t n, double x, double y)
 
static const char * poly_basis_str (ssize_t n)
 
static double poly_basis_dx (ssize_t n, double x, double y)
 
static double poly_basis_dy (ssize_t n, double x, double y)
 
MagickExport ImageAffineTransformImage (const Image *image, const AffineMatrix *affine_matrix, ExceptionInfo *exception)
 
static double MagickRound (double x)
 
static double * GenerateCoefficients (const Image *image, DistortMethod *method, const size_t number_arguments, const double *arguments, size_t number_values, ExceptionInfo *exception)
 
MagickExport ImageDistortResizeImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 
MagickExport ImageDistortImage (const Image *image, DistortMethod method, const size_t number_arguments, const double *arguments, MagickBooleanType bestfit, ExceptionInfo *exception)
 
MagickExport ImageRotateImage (const Image *image, const double degrees, ExceptionInfo *exception)
 
MagickExport ImageSparseColorImage (const Image *image, const SparseColorMethod method, const size_t number_arguments, const double *arguments, ExceptionInfo *exception)
 

Macro Definition Documentation

◆ DistortImageTag

#define DistortImageTag   "Distort/Image"

◆ DistortResizeImageTag

#define DistortResizeImageTag   "Distort/Image"

◆ ExpandBounds

#define ExpandBounds (   p)
Value:
{ \
/* printf("%lg,%lg -> %lg,%lg\n", s.x,s.y, d.x,d.y); */ \
min.x = MagickMin(min.x,p.x); \
max.x = MagickMax(max.x,p.x); \
min.y = MagickMin(min.y,p.y); \
max.y = MagickMax(max.y,p.y); \
}
#define MagickMin(x, y)
Definition: image-private.h:39
#define MagickMax(x, y)
Definition: image-private.h:38

◆ InitalBounds

#define InitalBounds (   p)
Value:
{ \
/* printf("%lg,%lg -> %lg,%lg\n", s.x,s.y, d.x,d.y); */ \
min.x = max.x = p.x; \
min.y = max.y = p.y; \
}

◆ ScaleFilter

#define ScaleFilter (   F,
  A,
  B,
  C,
 
)
Value:
output_scaling*(A), output_scaling*(B), \
output_scaling*(C), output_scaling*(D) )
MagickExport void ScaleResampleFilter(ResampleFilter *resample_filter, const double dux, const double duy, const double dvx, const double dvy)
Definition: resample.c:1038

◆ SparseColorTag

#define SparseColorTag   "Distort/SparseColor"

Function Documentation

◆ AffineArgsToCoefficients()

static void AffineArgsToCoefficients ( double *  affine)
inlinestatic

Definition at line 79 of file distort.c.

Referenced by GenerateCoefficients().

◆ AffineTransformImage()

◆ CoefficientsToAffineArgs()

static void CoefficientsToAffineArgs ( double *  coeff)
inlinestatic

Definition at line 87 of file distort.c.

Referenced by DistortImage().

◆ DistortImage()

MagickExport Image * DistortImage ( const Image image,
DistortMethod  method,
const size_t  number_arguments,
const double *  arguments,
MagickBooleanType  bestfit,
ExceptionInfo exception 
)

Definition at line 1754 of file distort.c.

References AcquireAuthenticCacheView(), AcquireQuantumMemory(), AcquireResampleFilterTLS(), AffineDistortion, _Image::alpha_trait, _PixelInfo::alpha_trait, ArcDistortion, _Image::background_color, BarrelDistortion, BarrelInverseDistortion, BilinearDistortion, BilinearForwardDistortion, BilinearReverseDistortion, BlendPixelTrait, CloneImage(), CoefficientsToAffineArgs(), _Image::colorspace, _Image::columns, CompositePixelInfoBlend(), ConformPixelInfo(), Cylinder2PlaneDistortion, DePolarDistortion, DestroyCacheView(), DestroyImage(), DestroyResampleFilterTLS(), DirectClass, DistortImageTag, DistortResizeImage(), ExpandBounds, _Image::filename, FormatLocaleFile(), FormatLocaleString(), GenerateCoefficients(), GetImageArtifact(), GetMagickModule, GetMagickPrecision(), GetOpenMPThreadId(), GetPixelChannels(), GetPixelInfo(), _RectangleInfo::height, InitalBounds, InvertAffineCoefficients(), InvertPerspectiveCoefficients(), IsEventLogging(), IsGrayColorspace(), IsPixelInfoGray(), IsStringTrue(), LogMagickEvent(), Magick2PI, magick_restrict, MagickCoreSignature, MagickEpsilon, MagickFalse, MagickPathExtent, MagickPI, MagickPI2, MagickRound(), MagickTrue, _Image::matte_color, NoValue, OptionError, OptionWarning, _Image::page, ParseAbsoluteGeometry(), PerceptibleReciprocal(), PerspectiveDistortion, Plane2CylinderDistortion, PolarDistortion, poly_basis_dx(), poly_basis_dy(), poly_basis_fn(), poly_basis_str(), PolynomialDistortion, _Image::progress_monitor, QueueCacheViewAuthenticPixels(), RadiansToDegrees(), RelinquishMagickMemory(), ResamplePixelColor(), ResizeDistortion, ResourceLimitError, RigidAffineDistortion, _Image::rows, ScaleFilter, SetImageColorspace(), SetImageProgress(), SetImageStorageClass(), SetPixelViaPixelInfo(), ShepardsDistortion, _ExceptionInfo::signature, _Image::signature, sRGBColorspace, StringToDouble(), SyncCacheViewAuthenticPixels(), ThrowMagickException(), TraceEvent, UndefinedPixelTrait, UndefinedVirtualPixelMethod, _RectangleInfo::width, _PointInfo::x, _RectangleInfo::x, _PointInfo::y, and _RectangleInfo::y.

Referenced by AffineTransformImage(), DistortResizeImage(), and RotateImage().

◆ DistortResizeImage()

◆ GenerateCoefficients()

◆ InvertAffineCoefficients()

static void InvertAffineCoefficients ( const double *  coeff,
double *  inverse 
)
static

Definition at line 94 of file distort.c.

References PerceptibleReciprocal().

Referenced by DistortImage(), and GenerateCoefficients().

◆ InvertPerspectiveCoefficients()

static void InvertPerspectiveCoefficients ( const double *  coeff,
double *  inverse 
)
static

Definition at line 108 of file distort.c.

References PerceptibleReciprocal().

Referenced by DistortImage(), and GenerateCoefficients().

◆ MagickRound()

static double MagickRound ( double  x)
inlinestatic

Definition at line 362 of file distort.c.

Referenced by DistortImage(), and GenerateCoefficients().

◆ poly_basis_dx()

static double poly_basis_dx ( ssize_t  n,
double  x,
double  y 
)
static

Definition at line 209 of file distort.c.

Referenced by DistortImage(), and poly_basis_dy().

◆ poly_basis_dy()

static double poly_basis_dy ( ssize_t  n,
double  x,
double  y 
)
static

Definition at line 237 of file distort.c.

References poly_basis_dx().

Referenced by DistortImage().

◆ poly_basis_fn()

static double poly_basis_fn ( ssize_t  n,
double  x,
double  y 
)
static

Definition at line 153 of file distort.c.

Referenced by DistortImage(), and GenerateCoefficients().

◆ poly_basis_str()

static const char * poly_basis_str ( ssize_t  n)
static

Definition at line 181 of file distort.c.

Referenced by DistortImage().

◆ poly_number_terms()

static size_t poly_number_terms ( double  order)
static

Definition at line 144 of file distort.c.

References MagickEpsilon.

Referenced by GenerateCoefficients().

◆ RotateImage()

◆ SparseColorImage()