MagickCore  7.0.1
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

#define DistortImageTag   "Distort/Image"

Referenced by DistortImage().

#define DistortResizeImageTag   "Distort/Image"
#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 MagickMax(x, y)
Definition: image-private.h:26
#define MagickMin(x, y)
Definition: image-private.h:27

Referenced by DistortImage().

#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; \
}

Referenced by DistortImage().

#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:1039

Referenced by DistortImage().

#define SparseColorTag   "Distort/SparseColor"

Referenced by SparseColorImage().

Function Documentation

static void AffineArgsToCoefficients ( double *  affine)
inlinestatic

Definition at line 80 of file distort.c.

Referenced by GenerateCoefficients().

static void CoefficientsToAffineArgs ( double *  coeff)
inlinestatic

Definition at line 88 of file distort.c.

Referenced by DistortImage().

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

Definition at line 1672 of file distort.c.

References AcquireAuthenticCacheView(), AcquireQuantumMemory(), AcquireResampleFilterThreadSet(), AffineDistortion, _Image::alpha_color, _PixelInfo::alpha_trait, _Image::alpha_trait, ArcDistortion, _Image::background_color, BarrelDistortion, BarrelInverseDistortion, BilinearDistortion, BilinearForwardDistortion, BilinearReverseDistortion, BlendPixelTrait, CloneImage(), CoefficientsToAffineArgs(), _Image::colorspace, _Image::columns, CompositePixelInfoBlend(), ConformPixelInfo(), Cylinder2PlaneDistortion, _Image::debug, DePolarDistortion, DestroyCacheView(), DestroyImage(), DestroyResampleFilterThreadSet(), DirectClass, DistortImageTag, DistortResizeImage(), ExpandBounds, _Image::filename, FormatLocaleFile(), FormatLocaleString(), GenerateCoefficients(), GetImageArtifact(), GetMagickModule, GetOpenMPThreadId(), GetPixelChannels(), GetPixelInfo(), _RectangleInfo::height, InitalBounds, InvertAffineCoefficients(), InvertPerspectiveCoefficients(), IsGrayColorspace(), IsPixelInfoGray(), IsStringTrue(), LogMagickEvent(), Magick2PI, magick_restrict, MagickCoreSignature, MagickEpsilon, MagickFalse, MagickPathExtent, MagickPI, MagickPI2, MagickRound(), MagickTrue, 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(), RelinquishMagickMemory(), ResamplePixelColor(), ResizeDistortion, ResourceLimitError, _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().

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

Definition at line 95 of file distort.c.

References PerceptibleReciprocal().

Referenced by DistortImage(), and GenerateCoefficients().

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

Definition at line 109 of file distort.c.

References PerceptibleReciprocal().

Referenced by DistortImage(), and GenerateCoefficients().

static double MagickRound ( double  x)
inlinestatic

Definition at line 363 of file distort.c.

Referenced by DistortImage(), and GenerateCoefficients().

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

Definition at line 210 of file distort.c.

Referenced by DistortImage(), and poly_basis_dy().

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

Definition at line 238 of file distort.c.

References poly_basis_dx().

Referenced by DistortImage().

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

Definition at line 154 of file distort.c.

Referenced by DistortImage(), and GenerateCoefficients().

static const char* poly_basis_str ( ssize_t  n)
static

Definition at line 182 of file distort.c.

Referenced by DistortImage().

static size_t poly_number_terms ( double  order)
static

Definition at line 145 of file distort.c.

References MagickEpsilon.

Referenced by GenerateCoefficients().