MagickCore  7.0.9
resize.c File Reference
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 caseA(N, A, B, C, D)
 
#define caseB(N, A, B, C, D, E, F, G, H)
 
#define Rotated(p)   p[2], p[4], p[7], p[1], p[6], p[0], p[3], p[5]
 
#define Corner(A, B, C, D)
 
#define Line(A, B, C, D)
 
#define WeightVar(M, N)
 
#define HelperCond(a, b, c, d, e, f, g)
 
#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 double I0 (double x)
 
static double BesselOrderOne (double)
 
static double Sinc (const double, const ResizeFilter *)
 
static double SincFast (const double, const ResizeFilter *)
 
static double Blackman (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Bohman (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Box (const double magick_unused(x), const ResizeFilter *magick_unused(resize_filter))
 
static double Cosine (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double CubicBC (const double x, const ResizeFilter *resize_filter)
 
static double CubicSpline (const double x, const ResizeFilter *resize_filter)
 
static double Gaussian (const double x, const ResizeFilter *resize_filter)
 
static double Hann (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Hamming (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Jinc (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Kaiser (const double x, const ResizeFilter *resize_filter)
 
static double Lagrange (const double x, const ResizeFilter *resize_filter)
 
static double Quadratic (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Sinc (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double SincFast (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Triangle (const double x, const ResizeFilter *magick_unused(resize_filter))
 
static double Welch (const double x, const ResizeFilter *magick_unused(resize_filter))
 
MagickPrivate ResizeFilterAcquireResizeFilter (const Image *image, const FilterType filter, const MagickBooleanType cylindrical, ExceptionInfo *exception)
 
MagickExport ImageAdaptiveResizeImage (const Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
 
static double J1 (double x)
 
static double P1 (double x)
 
static double Q1 (double x)
 
MagickPrivate ResizeFilterDestroyResizeFilter (ResizeFilter *resize_filter)
 
MagickPrivate double * GetResizeFilterCoefficient (const ResizeFilter *resize_filter)
 
MagickPrivate double GetResizeFilterBlur (const ResizeFilter *resize_filter)
 
MagickPrivate double GetResizeFilterScale (const ResizeFilter *resize_filter)
 
MagickPrivate double GetResizeFilterWindowSupport (const ResizeFilter *resize_filter)
 
MagickPrivate
ResizeWeightingFunctionType 
GetResizeFilterWeightingType (const ResizeFilter *resize_filter)
 
MagickPrivate
ResizeWeightingFunctionType 
GetResizeFilterWindowWeightingType (const ResizeFilter *resize_filter)
 
MagickPrivate double GetResizeFilterSupport (const ResizeFilter *resize_filter)
 
MagickPrivate double GetResizeFilterWeight (const ResizeFilter *resize_filter, const double x)
 
MagickExport ImageInterpolativeResizeImage (const Image *image, const size_t columns, const size_t rows, const PixelInterpolateMethod 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)
 
static void CopyPixels (const Quantum *source, const ssize_t source_offset, Quantum *destination, const ssize_t destination_offset, const size_t channels)
 
static void MixPixels (const Quantum *source, const ssize_t *source_offset, const size_t source_size, Quantum *destination, const ssize_t destination_offset, const size_t channels)
 
static void Mix2Pixels (const Quantum *source, const ssize_t source_offset1, const ssize_t source_offset2, Quantum *destination, const ssize_t destination_offset, const size_t channels)
 
static int PixelsEqual (const Quantum *source1, ssize_t offset1, const Quantum *source2, ssize_t offset2, const size_t channels)
 
static void Eagle2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Hq2XHelper (const unsigned int rule, const Quantum *source, Quantum *destination, const ssize_t destination_offset, const size_t channels, const ssize_t e, const ssize_t a, const ssize_t b, const ssize_t d, const ssize_t f, const ssize_t h)
 
static unsigned int Hq2XPatternToNumber (const int *pattern)
 
static void Hq2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Fish2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Xbr2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Scale2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Epbx2X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Eagle3X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Eagle3XB (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
static void Scale3X (const Image *source, const Quantum *pixels, Quantum *result, const size_t channels)
 
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 FilterType filter, ExceptionInfo *exception)
 
static ContributionInfo ** DestroyContributionThreadSet (ContributionInfo **contribution)
 
static ContributionInfo ** AcquireContributionThreadSet (const size_t count)
 
static MagickBooleanType HorizontalFilter (const ResizeFilter *magick_restrict resize_filter, const Image *magick_restrict image, Image *magick_restrict resize_image, const double x_factor, const MagickSizeType span, MagickOffsetType *magick_restrict progress, ExceptionInfo *exception)
 
static MagickBooleanType VerticalFilter (const ResizeFilter *magick_restrict resize_filter, const Image *magick_restrict image, Image *magick_restrict resize_image, const double y_factor, const MagickSizeType span, MagickOffsetType *magick_restrict progress, ExceptionInfo *exception)
 
MagickExport ImageResizeImage (const Image *image, const size_t columns, const size_t rows, const FilterType filter, 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

#define caseA (   N,
  A,
  B,
  C,
 
)
Value:
case N: \
{ \
const ssize_t \
offsets[4] = { A, B, C, D }; \
MixPixels(source,offsets,4,destination,destination_offset,channels);\
break; \
}
static void MixPixels(const Quantum *source, const ssize_t *source_offset, const size_t source_size, Quantum *destination, const ssize_t destination_offset, const size_t channels)
Definition: resize.c:2073

Referenced by Hq2XHelper().

#define caseB (   N,
  A,
  B,
  C,
  D,
  E,
  F,
  G,
 
)
Value:
case N: \
{ \
const ssize_t \
offsets[8] = { A, B, C, D, E, F, G, H }; \
MixPixels(source,offsets,8,destination,destination_offset,channels);\
break; \
}
static void MixPixels(const Quantum *source, const ssize_t *source_offset, const size_t source_size, Quantum *destination, const ssize_t destination_offset, const size_t channels)
Definition: resize.c:2073

Referenced by Hq2XHelper().

#define Corner (   A,
  B,
  C,
 
)
Value:
{ \
if (intensities[B] > intensities[A]) \
{ \
ssize_t \
offsets[3] = { B, C, D }; \
MixPixels(pixels,offsets,3,result,3,channels); \
} \
else \
{ \
ssize_t \
offsets[3] = { A, B, C }; \
MixPixels(pixels,offsets,3,result,3,channels); \
} \
}
static void MixPixels(const Quantum *source, const ssize_t *source_offset, const size_t source_size, Quantum *destination, const ssize_t destination_offset, const size_t channels)
Definition: resize.c:2073

Referenced by Fish2X().

#define HelperCond (   a,
  b,
  c,
  d,
  e,
  f,
 
)
Value:
( \
PixelsEqual(pixels,a,pixels,b,channels) && ( \
PixelsEqual(pixels,c,pixels,d,channels) || \
PixelsEqual(pixels,c,pixels,e,channels) || \
PixelsEqual(pixels,a,pixels,f,channels) || \
PixelsEqual(pixels,b,pixels,g,channels) \
) \
)
static int PixelsEqual(const Quantum *source1, ssize_t offset1, const Quantum *source2, ssize_t offset2, const size_t channels)
Definition: resize.c:2105

Referenced by Epbx2X().

#define InterpolativeResizeImageTag   "Resize/Image"
#define Line (   A,
  B,
  C,
 
)
Value:
{ \
if (intensities[C] > intensities[A]) \
Mix2Pixels(pixels,C,D,result,3,channels); \
Mix2Pixels(pixels,A,B,result,3,channels); \
}
static void Mix2Pixels(const Quantum *source, const ssize_t source_offset1, const ssize_t source_offset2, Quantum *destination, const ssize_t destination_offset, const size_t channels)
Definition: resize.c:2095

Referenced by Fish2X().

#define MagnifyImageTag   "Magnify/Image"

Referenced by MagnifyImage().

#define ResampleImageTag   "Resample/Image"
#define ResizeImageTag   "Resize/Image"

Referenced by HorizontalFilter(), and VerticalFilter().

#define Rotated (   p)    p[2], p[4], p[7], p[1], p[6], p[0], p[3], p[5]

Referenced by Hq2X().

#define SampleFactor   5

Referenced by ThumbnailImage().

#define SampleImageTag   "Sample/Image"

Referenced by SampleImage().

#define ScaleImageTag   "Scale/Image"

Referenced by ScaleImage().

#define WeightVar (   M,
 
)
Value:
const int w_##M##_##N = \
PixelsEqual(pixels,M,pixels,N,channels) ? 0 : 1;
static int PixelsEqual(const Quantum *source1, ssize_t offset1, const Quantum *source2, ssize_t offset2, const size_t channels)
Definition: resize.c:2105

Referenced by Xbr2X().

Typedef Documentation

Function Documentation

static ContributionInfo** AcquireContributionThreadSet ( const size_t  count)
static
MagickPrivate ResizeFilter* AcquireResizeFilter ( const Image image,
const FilterType  filter,
const MagickBooleanType  cylindrical,
ExceptionInfo exception 
)

Definition at line 757 of file resize.c.

References AcquireCriticalMemory(), Blackman(), BlackmanFilter, BlackmanWeightingFunction, _ResizeFilter::blur, Bohman(), BohmanFilter, BohmanWeightingFunction, Box(), BoxFilter, BoxWeightingFunction, CatromFilter, _ResizeFilter::coefficient, CommandOptionToMnemonic(), Cosine(), CosineFilter, CosineWeightingFunction, CubicBC(), CubicBCWeightingFunction, CubicFilter, CubicSpline(), CubicSplineFilter, _Image::debug, DeleteImageArtifact(), _Image::filename, _ResizeFilter::filter, _ResizeFilter::filterWeightingType, FormatLocaleFile(), Gaussian(), GaussianFilter, GaussianWeightingFunction, GetImageArtifact(), GetMagickModule, GetMagickPrecision(), GetResizeFilterSupport(), GetResizeFilterWeight(), Hamming(), HammingFilter, HammingWeightingFunction, Hann(), HannFilter, HannWeightingFunction, HermiteFilter, I0(), IsStringTrue(), 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, RobidouxFilter, RobidouxSharpFilter, _ResizeFilter::scale, SentinelFilter, _ResizeFilter::signature, _ExceptionInfo::signature, _Image::signature, Sinc(), SincFast(), SincFastFilter, SincFastWeightingFunction, SincFilter, SincWeightingFunction, SplineFilter, StringToDouble(), StringToLong(), _ResizeFilter::support, TraceEvent, Triangle(), TriangleFilter, TriangleWeightingFunction, UndefinedFilter, Welch(), WelchFilter, WelchWeightingFunction, _ResizeFilter::window, _ResizeFilter::window_support, and _ResizeFilter::windowWeightingType.

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

Definition at line 1290 of file resize.c.

References InterpolativeResizeImage(), and MeshInterpolatePixel.

static double BesselOrderOne ( double  x)

Definition at line 1491 of file resize.c.

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

Referenced by Jinc().

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

Definition at line 149 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

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

Definition at line 164 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

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

Definition at line 181 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter(), and GetResizeFilterWeight().

static void CopyPixels ( const Quantum source,
const ssize_t  source_offset,
Quantum destination,
const ssize_t  destination_offset,
const size_t  channels 
)
inlinestatic

Definition at line 2063 of file resize.c.

Referenced by Eagle2X(), Eagle3X(), Eagle3XB(), Epbx2X(), Fish2X(), Hq2XHelper(), Scale2X(), Scale3X(), and Xbr2X().

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

Definition at line 195 of file resize.c.

References magick_unreferenced, and MagickPI2.

Referenced by AcquireResizeFilter().

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

Definition at line 207 of file resize.c.

References _ResizeFilter::coefficient.

Referenced by AcquireResizeFilter().

static double CubicSpline ( const double  x,
const ResizeFilter resize_filter 
)
static

Definition at line 247 of file resize.c.

References _ResizeFilter::support.

Referenced by AcquireResizeFilter().

static ContributionInfo** DestroyContributionThreadSet ( ContributionInfo **  contribution)
static
MagickPrivate ResizeFilter* DestroyResizeFilter ( ResizeFilter resize_filter)
static void Eagle2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
inlinestatic

Definition at line 2119 of file resize.c.

References CopyPixels(), and PixelsEqual().

Referenced by MagnifyImage().

static void Eagle3X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
inlinestatic

Definition at line 2670 of file resize.c.

References CopyPixels(), Mix2Pixels(), and PixelsEqual().

Referenced by MagnifyImage().

static void Eagle3XB ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
inlinestatic

Definition at line 2710 of file resize.c.

References CopyPixels(), and PixelsEqual().

Referenced by MagnifyImage().

static void Epbx2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
static

Definition at line 2617 of file resize.c.

References CopyPixels(), HelperCond, Mix2Pixels(), and PixelsEqual().

Referenced by MagnifyImage().

static void Fish2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
static

Definition at line 2397 of file resize.c.

References CopyPixels(), Corner, GetPixelIntensity(), Line, Mix2Pixels(), MixPixels(), and PixelsEqual().

Referenced by MagnifyImage().

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

Definition at line 287 of file resize.c.

References _ResizeFilter::coefficient.

Referenced by AcquireResizeFilter().

MagickPrivate double GetResizeFilterBlur ( const ResizeFilter resize_filter)

Definition at line 1574 of file resize.c.

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

MagickPrivate double* GetResizeFilterCoefficient ( const ResizeFilter resize_filter)
MagickPrivate double GetResizeFilterScale ( const ResizeFilter resize_filter)

Definition at line 1581 of file resize.c.

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

MagickPrivate double GetResizeFilterSupport ( const ResizeFilter resize_filter)
MagickPrivate ResizeWeightingFunctionType GetResizeFilterWeightingType ( const ResizeFilter resize_filter)
MagickPrivate double GetResizeFilterWindowSupport ( const ResizeFilter resize_filter)
MagickPrivate ResizeWeightingFunctionType GetResizeFilterWindowWeightingType ( const ResizeFilter resize_filter)
static double Hamming ( const double  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 334 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

static double Hann ( const double  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 322 of file resize.c.

References magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

static void Hq2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
inlinestatic

Definition at line 2344 of file resize.c.

References Hq2XHelper(), Hq2XPatternToNumber(), PixelsEqual(), and Rotated.

Referenced by MagnifyImage().

static void Hq2XHelper ( const unsigned int  rule,
const Quantum source,
Quantum destination,
const ssize_t  destination_offset,
const size_t  channels,
const ssize_t  e,
const ssize_t  a,
const ssize_t  b,
const ssize_t  d,
const ssize_t  f,
const ssize_t  h 
)
static

Definition at line 2142 of file resize.c.

References caseA, caseB, CopyPixels(), MixPixels(), and PixelsEqual().

Referenced by Hq2X().

static unsigned int Hq2XPatternToNumber ( const int *  pattern)
inlinestatic

Definition at line 2325 of file resize.c.

Referenced by Hq2X().

static double I0 ( double  x)
static

Definition at line 1341 of file resize.c.

References MagickEpsilon.

Referenced by AcquireResizeFilter(), and Kaiser().

static double J1 ( double  x)
static

Definition at line 1366 of file resize.c.

Referenced by BesselOrderOne().

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

Definition at line 346 of file resize.c.

References BesselOrderOne(), magick_unreferenced, and MagickPI.

Referenced by AcquireResizeFilter().

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

Definition at line 364 of file resize.c.

References _ResizeFilter::coefficient, and I0().

Referenced by AcquireResizeFilter().

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

Definition at line 382 of file resize.c.

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

Referenced by AcquireResizeFilter().

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 
)
static void Mix2Pixels ( const Quantum source,
const ssize_t  source_offset1,
const ssize_t  source_offset2,
Quantum destination,
const ssize_t  destination_offset,
const size_t  channels 
)
inlinestatic

Definition at line 2095 of file resize.c.

References MixPixels().

Referenced by Eagle3X(), Epbx2X(), Fish2X(), and Xbr2X().

static void MixPixels ( const Quantum source,
const ssize_t *  source_offset,
const size_t  source_size,
Quantum destination,
const ssize_t  destination_offset,
const size_t  channels 
)
inlinestatic

Definition at line 2073 of file resize.c.

Referenced by Fish2X(), Hq2XHelper(), and Mix2Pixels().

static double P1 ( double  x)
static

Definition at line 1412 of file resize.c.

Referenced by BesselOrderOne().

static int PixelsEqual ( const Quantum source1,
ssize_t  offset1,
const Quantum source2,
ssize_t  offset2,
const size_t  channels 
)
inlinestatic

Definition at line 2105 of file resize.c.

Referenced by Eagle2X(), Eagle3X(), Eagle3XB(), Epbx2X(), Fish2X(), Hq2X(), Hq2XHelper(), Scale2X(), and Scale3X().

static double Q1 ( double  x)
static

Definition at line 1452 of file resize.c.

Referenced by BesselOrderOne().

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

Definition at line 415 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().

MagickExport Image* ResampleImage ( const Image image,
const double  x_resolution,
const double  y_resolution,
const FilterType  filter,
ExceptionInfo exception 
)
static void Scale2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
static

Definition at line 2586 of file resize.c.

References CopyPixels(), and PixelsEqual().

Referenced by MagnifyImage().

static void Scale3X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
inlinestatic

Definition at line 2738 of file resize.c.

References CopyPixels(), and PixelsEqual().

Referenced by MagnifyImage().

static double Sinc ( const double  ,
const ResizeFilter  
)

Referenced by AcquireResizeFilter().

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

Definition at line 430 of file resize.c.

References magick_unreferenced, and MagickPI.

static double SincFast ( const double  ,
const ResizeFilter  
)

Referenced by AcquireResizeFilter().

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

Definition at line 447 of file resize.c.

References magick_unreferenced, and MagickPI.

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

Definition at line 543 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().

static double Welch ( const double  x,
const ResizeFilter magick_unusedresize_filter 
)
static

Definition at line 558 of file resize.c.

References magick_unreferenced.

Referenced by AcquireResizeFilter().

static void Xbr2X ( const Image source,
const Quantum pixels,
Quantum result,
const size_t  channels 
)
static

Definition at line 2516 of file resize.c.

References CopyPixels(), Mix2Pixels(), and WeightVar.

Referenced by MagnifyImage().