.. include global.rst

.. py:currentmodule:: pyvips

``Image``
=========

Main methods
------------

.. autoclass:: Image
   :members:
   :special-members:

   .. rubric:: Methods

   .. autoautosummary:: Image
      :methods:

Attributes
---------- 

.. autosummary::
   :nosignatures:

.. class:: Image
   :noindex:

   .. attribute:: width

      int, read-only: Image width in pixels.

   .. attribute:: height

      int, read-only: Image height in pixels.

   .. attribute:: bands

      int, read-only: Number of bands in image.

   .. attribute:: format

      :class:`.BandFormat`, read-only: Image format.

   .. attribute:: interpretation

      :class:`.Interpretation`, read-only: Suggested interpretation of 
      image pixel values.

   .. attribute:: coding

      :class:`.Coding`, read-only: Pixel coding. 

   .. attribute:: filename

      str, read-only: Filename image was loaded from, or None.

   .. attribute:: xoffset

      int, read-only: Image X offset.

   .. attribute:: yoffset

      int, read-only: Image Y offset.

   .. attribute:: xres

      float, read-only: Image X resolution, in pixels / mm

   .. attribute:: yres

      float, read-only: Image Y resolution, in pixels / mm.

   .. attribute:: scale

      float, read-only: Image scale.

   .. attribute:: offset

      float, read-only: Image offset.

Autogenerated methods
---------------------

.. class:: Image
   :noindex:

   .. rubric:: Methods

   .. autosummary::
      :nosignatures:

      ~CMC2LCh
      ~CMYK2XYZ
      ~HSV2sRGB
      ~LCh2CMC
      ~LCh2Lab
      ~Lab2LCh
      ~Lab2LabQ
      ~Lab2LabS
      ~Lab2XYZ
      ~LabQ2Lab
      ~LabQ2LabS
      ~LabQ2sRGB
      ~LabS2Lab
      ~LabS2LabQ
      ~Oklab2Oklch
      ~Oklab2XYZ
      ~Oklch2Oklab
      ~XYZ2CMYK
      ~XYZ2Lab
      ~XYZ2Oklab
      ~XYZ2Yxy
      ~XYZ2scRGB
      ~Yxy2XYZ
      ~abs
      ~add
      ~addalpha
      ~affine
      ~analyzeload
      ~arrayjoin
      ~autorot
      ~avg
      ~bandbool
      ~bandfold
      ~bandjoin_const
      ~bandmean
      ~bandunfold
      ~black
      ~boolean
      ~boolean_const
      ~buildlut
      ~byteswap
      ~canny
      ~case
      ~cast
      ~clamp
      ~colourspace
      ~compass
      ~complex
      ~complex2
      ~complexform
      ~complexget
      ~composite
      ~composite2
      ~conv
      ~conva
      ~convasep
      ~convf
      ~convi
      ~convsep
      ~copy
      ~countlines
      ~crop
      ~csvload
      ~csvload_source
      ~csvsave
      ~csvsave_target
      ~dE00
      ~dE76
      ~dECMC
      ~dcrawload
      ~dcrawload_buffer
      ~dcrawload_source
      ~deviate
      ~divide
      ~draw_circle
      ~draw_flood
      ~draw_image
      ~draw_line
      ~draw_mask
      ~draw_rect
      ~draw_smudge
      ~dzsave
      ~dzsave_buffer
      ~dzsave_target
      ~embed
      ~extract_area
      ~extract_band
      ~eye
      ~falsecolour
      ~fastcor
      ~fill_nearest
      ~find_trim
      ~fitsload
      ~fitsload_source
      ~fitssave
      ~flatten
      ~flip
      ~float2rad
      ~fractsurf
      ~freqmult
      ~fwfft
      ~gamma
      ~gaussblur
      ~gaussmat
      ~gaussnoise
      ~getpoint
      ~gifload
      ~gifload_buffer
      ~gifload_source
      ~gifsave
      ~gifsave_buffer
      ~gifsave_target
      ~globalbalance
      ~gravity
      ~grey
      ~grid
      ~heifload
      ~heifload_buffer
      ~heifload_source
      ~heifsave
      ~heifsave_buffer
      ~heifsave_target
      ~hist_cum
      ~hist_entropy
      ~hist_equal
      ~hist_find
      ~hist_find_indexed
      ~hist_find_ndim
      ~hist_ismonotonic
      ~hist_local
      ~hist_match
      ~hist_norm
      ~hist_plot
      ~hough_circle
      ~hough_line
      ~icc_export
      ~icc_import
      ~icc_transform
      ~identity
      ~insert
      ~invert
      ~invertlut
      ~invfft
      ~join
      ~jp2kload
      ~jp2kload_buffer
      ~jp2kload_source
      ~jp2ksave
      ~jp2ksave_buffer
      ~jp2ksave_target
      ~jpegload
      ~jpegload_buffer
      ~jpegload_source
      ~jpegsave
      ~jpegsave_buffer
      ~jpegsave_mime
      ~jpegsave_target
      ~jxlload
      ~jxlload_buffer
      ~jxlload_source
      ~jxlsave
      ~jxlsave_buffer
      ~jxlsave_target
      ~labelregions
      ~linear
      ~linecache
      ~logmat
      ~magickload
      ~magickload_buffer
      ~magickload_source
      ~magicksave
      ~magicksave_buffer
      ~mapim
      ~maplut
      ~mask_butterworth
      ~mask_butterworth_band
      ~mask_butterworth_ring
      ~mask_fractal
      ~mask_gaussian
      ~mask_gaussian_band
      ~mask_gaussian_ring
      ~mask_ideal
      ~mask_ideal_band
      ~mask_ideal_ring
      ~match
      ~math
      ~math2
      ~math2_const
      ~matload
      ~matrixinvert
      ~matrixload
      ~matrixload_source
      ~matrixmultiply
      ~matrixprint
      ~matrixsave
      ~matrixsave_target
      ~max
      ~maxpair
      ~measure
      ~merge
      ~min
      ~minpair
      ~morph
      ~mosaic
      ~mosaic1
      ~msb
      ~multiply
      ~niftiload
      ~niftiload_source
      ~niftisave
      ~openexrload
      ~openslideload
      ~openslideload_source
      ~pdfload
      ~pdfload_buffer
      ~pdfload_source
      ~percent
      ~perlin
      ~phasecor
      ~pngload
      ~pngload_buffer
      ~pngload_source
      ~pngsave
      ~pngsave_buffer
      ~pngsave_target
      ~ppmload
      ~ppmload_buffer
      ~ppmload_source
      ~ppmsave
      ~ppmsave_target
      ~premultiply
      ~prewitt
      ~profile
      ~profile_load
      ~project
      ~quadratic
      ~rad2float
      ~radload
      ~radload_buffer
      ~radload_source
      ~radsave
      ~radsave_buffer
      ~radsave_target
      ~rank
      ~rawload
      ~rawsave
      ~rawsave_buffer
      ~rawsave_target
      ~recomb
      ~reduce
      ~reduceh
      ~reducev
      ~relational
      ~relational_const
      ~remainder
      ~remainder_const
      ~remosaic
      ~replicate
      ~resize
      ~rot
      ~rot45
      ~rotate
      ~round
      ~sRGB2HSV
      ~sRGB2scRGB
      ~scRGB2BW
      ~scRGB2XYZ
      ~scRGB2sRGB
      ~scharr
      ~sdf
      ~sequential
      ~sharpen
      ~shrink
      ~shrinkh
      ~shrinkv
      ~sign
      ~similarity
      ~sines
      ~smartcrop
      ~sobel
      ~spcor
      ~spectrum
      ~stats
      ~stdif
      ~subsample
      ~subtract
      ~sum
      ~svgload
      ~svgload_buffer
      ~svgload_source
      ~switch
      ~system
      ~text
      ~thumbnail
      ~thumbnail_buffer
      ~thumbnail_image
      ~thumbnail_source
      ~tiffload
      ~tiffload_buffer
      ~tiffload_source
      ~tiffsave
      ~tiffsave_buffer
      ~tiffsave_target
      ~tilecache
      ~tonelut
      ~transpose3d
      ~uhdr2scRGB
      ~uhdrload
      ~uhdrload_buffer
      ~uhdrload_source
      ~uhdrsave
      ~uhdrsave_buffer
      ~uhdrsave_target
      ~unpremultiply
      ~vipsload
      ~vipsload_source
      ~vipssave
      ~vipssave_target
      ~webpload
      ~webpload_buffer
      ~webpload_source
      ~webpsave
      ~webpsave_buffer
      ~webpsave_mime
      ~webpsave_target
      ~worley
      ~wrap
      ~xyz
      ~zone
      ~zoom


   .. method:: CMC2LCh()
      
      Transform LCh to CMC.
      
      Example:
          out = in.CMC2LCh()
      
      :rtype: Image
      :raises Error:
      
   .. method:: CMYK2XYZ()
      
      Transform CMYK to XYZ.
      
      Example:
          out = in.CMYK2XYZ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: HSV2sRGB()
      
      Transform HSV to sRGB.
      
      Example:
          out = in.HSV2sRGB()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LCh2CMC()
      
      Transform LCh to CMC.
      
      Example:
          out = in.LCh2CMC()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LCh2Lab()
      
      Transform LCh to Lab.
      
      Example:
          out = in.LCh2Lab()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Lab2LCh()
      
      Transform Lab to LCh.
      
      Example:
          out = in.Lab2LCh()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Lab2LabQ()
      
      Transform float Lab to LabQ coding.
      
      Example:
          out = in.Lab2LabQ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Lab2LabS()
      
      Transform float Lab to signed short.
      
      Example:
          out = in.Lab2LabS()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Lab2XYZ(temp=list[float])
      
      Transform CIELAB to XYZ.
      
      Example:
          out = in.Lab2XYZ(temp=list[float])
      
      :param temp: Color temperature
      :type temp: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: LabQ2Lab()
      
      Unpack a LabQ image to float Lab.
      
      Example:
          out = in.LabQ2Lab()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LabQ2LabS()
      
      Unpack a LabQ image to short Lab.
      
      Example:
          out = in.LabQ2LabS()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LabQ2sRGB()
      
      Convert a LabQ image to sRGB.
      
      Example:
          out = in.LabQ2sRGB()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LabS2Lab()
      
      Transform signed short Lab to float.
      
      Example:
          out = in.LabS2Lab()
      
      :rtype: Image
      :raises Error:
      
   .. method:: LabS2LabQ()
      
      Transform short Lab to LabQ coding.
      
      Example:
          out = in.LabS2LabQ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Oklab2Oklch()
      
      Transform Oklab to Oklch.
      
      Example:
          out = in.Oklab2Oklch()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Oklab2XYZ()
      
      Transform Oklab to XYZ.
      
      Example:
          out = in.Oklab2XYZ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Oklch2Oklab()
      
      Transform Oklch to Oklab.
      
      Example:
          out = in.Oklch2Oklab()
      
      :rtype: Image
      :raises Error:
      
   .. method:: XYZ2CMYK()
      
      Transform XYZ to CMYK.
      
      Example:
          out = in.XYZ2CMYK()
      
      :rtype: Image
      :raises Error:
      
   .. method:: XYZ2Lab(temp=list[float])
      
      Transform XYZ to Lab.
      
      Example:
          out = in.XYZ2Lab(temp=list[float])
      
      :param temp: Colour temperature
      :type temp: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: XYZ2Oklab()
      
      Transform XYZ to Oklab.
      
      Example:
          out = in.XYZ2Oklab()
      
      :rtype: Image
      :raises Error:
      
   .. method:: XYZ2Yxy()
      
      Transform XYZ to Yxy.
      
      Example:
          out = in.XYZ2Yxy()
      
      :rtype: Image
      :raises Error:
      
   .. method:: XYZ2scRGB()
      
      Transform XYZ to scRGB.
      
      Example:
          out = in.XYZ2scRGB()
      
      :rtype: Image
      :raises Error:
      
   .. method:: Yxy2XYZ()
      
      Transform Yxy to XYZ.
      
      Example:
          out = in.Yxy2XYZ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: abs()
      
      Absolute value of an image.
      
      Example:
          out = in.abs()
      
      :rtype: Image
      :raises Error:
      
   .. method:: add(right)
      
      Add two images.
      
      Example:
          out = left.add(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: addalpha()
      
      Append an alpha channel.
      
      Example:
          out = in.addalpha()
      
      :rtype: Image
      :raises Error:
      
   .. method:: affine(matrix, interpolate=GObject, oarea=list[int], odx=float, ody=float, idx=float, idy=float, background=list[float], premultiplied=bool, extend=Union[str, Extend])
      
      Affine transform of an image.
      
      Example:
          out = in.affine(matrix, interpolate=GObject, oarea=list[int], odx=float, ody=float, idx=float, idy=float, background=list[float], premultiplied=bool, extend=Union[str, Extend])
      
      :param matrix: Transformation matrix
      :type matrix: list[float]
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :param oarea: Area of output to generate
      :type oarea: list[int]
      :param odx: Horizontal output displacement
      :type odx: float
      :param ody: Vertical output displacement
      :type ody: float
      :param idx: Horizontal input displacement
      :type idx: float
      :param idy: Vertical input displacement
      :type idy: float
      :param background: Background value
      :type background: list[float]
      :param premultiplied: Images have premultiplied alpha
      :type premultiplied: bool
      :param extend: How to generate the extra pixels
      :type extend: Union[str, Extend]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: analyzeload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load an Analyze6 image.
      
      Example:
          out = pyvips.Image.analyzeload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: arrayjoin(in, across=int, shim=int, background=list[float], halign=Union[str, Align], valign=Union[str, Align], hspacing=int, vspacing=int)
      
      Join an array of images.
      
      Example:
          out = pyvips.Image.arrayjoin(in, across=int, shim=int, background=list[float], halign=Union[str, Align], valign=Union[str, Align], hspacing=int, vspacing=int)
      
      :param in: Array of input images
      :type in: list[Image]
      :param across: Number of images across grid
      :type across: int
      :param shim: Pixels between images
      :type shim: int
      :param background: Colour for new pixels
      :type background: list[float]
      :param halign: Align on the left, centre or right
      :type halign: Union[str, Align]
      :param valign: Align on the top, centre or bottom
      :type valign: Union[str, Align]
      :param hspacing: Horizontal spacing between images
      :type hspacing: int
      :param vspacing: Vertical spacing between images
      :type vspacing: int
      :rtype: Image
      :raises Error:
      
   .. method:: autorot(angle=bool, flip=bool)
      
      Autorotate image by exif tag.
      
      Example:
          out = in.autorot()
      
      :param angle: enable output: Angle image was rotated by
      :type angle: bool
      :param flip: enable output: Whether the image was flipped or not
      :type flip: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: avg()
      
      Find image average.
      
      Example:
          out = in.avg()
      
      :rtype: float
      :raises Error:
      
   .. method:: bandbool(boolean)
      
      Boolean operation across image bands.
      
      Example:
          out = in.bandbool(boolean)
      
      :param boolean: Boolean to perform
      :type boolean: Union[str, OperationBoolean]
      :rtype: Image
      :raises Error:
      
   .. method:: bandfold(factor=int)
      
      Fold up x axis into bands.
      
      Example:
          out = in.bandfold(factor=int)
      
      :param factor: Fold by this factor
      :type factor: int
      :rtype: Image
      :raises Error:
      
   .. method:: bandjoin_const(c)
      
      Append a constant band to an image.
      
      Example:
          out = in.bandjoin_const(c)
      
      :param c: Array of constants to add
      :type c: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: bandmean()
      
      Band-wise average.
      
      Example:
          out = in.bandmean()
      
      :rtype: Image
      :raises Error:
      
   .. method:: bandunfold(factor=int)
      
      Unfold image bands into x axis.
      
      Example:
          out = in.bandunfold(factor=int)
      
      :param factor: Unfold by this factor
      :type factor: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: black(width, height, bands=int)
      
      Make a black image.
      
      Example:
          out = pyvips.Image.black(width, height, bands=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param bands: Number of bands in image
      :type bands: int
      :rtype: Image
      :raises Error:
      
   .. method:: boolean(right, boolean)
      
      Boolean operation on two images.
      
      Example:
          out = left.boolean(right, boolean)
      
      :param right: Right-hand image argument
      :type right: Image
      :param boolean: Boolean to perform
      :type boolean: Union[str, OperationBoolean]
      :rtype: Image
      :raises Error:
      
   .. method:: boolean_const(boolean, c)
      
      Boolean operations against a constant.
      
      Example:
          out = in.boolean_const(boolean, c)
      
      :param boolean: Boolean to perform
      :type boolean: Union[str, OperationBoolean]
      :param c: Array of constants
      :type c: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: buildlut()
      
      Build a look-up table.
      
      Example:
          out = in.buildlut()
      
      :rtype: Image
      :raises Error:
      
   .. method:: byteswap()
      
      Byteswap an image.
      
      Example:
          out = in.byteswap()
      
      :rtype: Image
      :raises Error:
      
   .. method:: canny(sigma=float, precision=Union[str, Precision])
      
      Canny edge detector.
      
      Example:
          out = in.canny(sigma=float, precision=Union[str, Precision])
      
      :param sigma: Sigma of Gaussian
      :type sigma: float
      :param precision: Convolve with this precision
      :type precision: Union[str, Precision]
      :rtype: Image
      :raises Error:
      
   .. method:: case(cases)
      
      Use pixel values to pick cases from an array of images.
      
      Example:
          out = index.case(cases)
      
      :param cases: Array of case images
      :type cases: list[Image]
      :rtype: Image
      :raises Error:
      
   .. method:: cast(format, shift=bool)
      
      Cast an image.
      
      Example:
          out = in.cast(format, shift=bool)
      
      :param format: Format to cast to
      :type format: Union[str, BandFormat]
      :param shift: Shift integer values up and down
      :type shift: bool
      :rtype: Image
      :raises Error:
      
   .. method:: clamp(min=float, max=float)
      
      Clamp values of an image.
      
      Example:
          out = in.clamp(min=float, max=float)
      
      :param min: Minimum value
      :type min: float
      :param max: Maximum value
      :type max: float
      :rtype: Image
      :raises Error:
      
   .. method:: colourspace(space, source_space=Union[str, Interpretation])
      
      Convert to a new colorspace.
      
      Example:
          out = in.colourspace(space, source_space=Union[str, Interpretation])
      
      :param space: Destination color space
      :type space: Union[str, Interpretation]
      :param source_space: Source color space
      :type source_space: Union[str, Interpretation]
      :rtype: Image
      :raises Error:
      
   .. method:: compass(mask, times=int, angle=Union[str, Angle45], combine=Union[str, Combine], precision=Union[str, Precision], layers=int, cluster=int)
      
      Convolve with rotating mask.
      
      Example:
          out = in.compass(mask, times=int, angle=Union[str, Angle45], combine=Union[str, Combine], precision=Union[str, Precision], layers=int, cluster=int)
      
      :param mask: Input matrix image
      :type mask: Image
      :param times: Rotate and convolve this many times
      :type times: int
      :param angle: Rotate mask by this much between convolutions
      :type angle: Union[str, Angle45]
      :param combine: Combine convolution results like this
      :type combine: Union[str, Combine]
      :param precision: Convolve with this precision
      :type precision: Union[str, Precision]
      :param layers: Use this many layers in approximation
      :type layers: int
      :param cluster: Cluster lines closer than this in approximation
      :type cluster: int
      :rtype: Image
      :raises Error:
      
   .. method:: complex(cmplx)
      
      Perform a complex operation on an image.
      
      Example:
          out = in.complex(cmplx)
      
      :param cmplx: Complex to perform
      :type cmplx: Union[str, OperationComplex]
      :rtype: Image
      :raises Error:
      
   .. method:: complex2(right, cmplx)
      
      Complex binary operations on two images.
      
      Example:
          out = left.complex2(right, cmplx)
      
      :param right: Right-hand image argument
      :type right: Image
      :param cmplx: Binary complex operation to perform
      :type cmplx: Union[str, OperationComplex2]
      :rtype: Image
      :raises Error:
      
   .. method:: complexform(right)
      
      Form a complex image from two real images.
      
      Example:
          out = left.complexform(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: complexget(get)
      
      Get a component from a complex image.
      
      Example:
          out = in.complexget(get)
      
      :param get: Complex to perform
      :type get: Union[str, OperationComplexget]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: composite(in, mode, x=list[int], y=list[int], compositing_space=Union[str, Interpretation], premultiplied=bool)
      
      Blend an array of images with an array of blend modes.
      
      Example:
          out = pyvips.Image.composite(in, mode, x=list[int], y=list[int], compositing_space=Union[str, Interpretation], premultiplied=bool)
      
      :param in: Array of input images
      :type in: list[Image]
      :param mode: Array of VipsBlendMode to join with
      :type mode: list[int]
      :param x: Array of x coordinates to join at
      :type x: list[int]
      :param y: Array of y coordinates to join at
      :type y: list[int]
      :param compositing_space: Composite images in this colour space
      :type compositing_space: Union[str, Interpretation]
      :param premultiplied: Images have premultiplied alpha
      :type premultiplied: bool
      :rtype: Image
      :raises Error:
      
   .. method:: composite2(overlay, mode, x=int, y=int, compositing_space=Union[str, Interpretation], premultiplied=bool)
      
      Blend a pair of images with a blend mode.
      
      Example:
          out = base.composite2(overlay, mode, x=int, y=int, compositing_space=Union[str, Interpretation], premultiplied=bool)
      
      :param overlay: Overlay image
      :type overlay: Image
      :param mode: VipsBlendMode to join with
      :type mode: Union[str, BlendMode]
      :param x: x position of overlay
      :type x: int
      :param y: y position of overlay
      :type y: int
      :param compositing_space: Composite images in this colour space
      :type compositing_space: Union[str, Interpretation]
      :param premultiplied: Images have premultiplied alpha
      :type premultiplied: bool
      :rtype: Image
      :raises Error:
      
   .. method:: conv(mask, precision=Union[str, Precision], layers=int, cluster=int)
      
      Convolution operation.
      
      Example:
          out = in.conv(mask, precision=Union[str, Precision], layers=int, cluster=int)
      
      :param mask: Input matrix image
      :type mask: Image
      :param precision: Convolve with this precision
      :type precision: Union[str, Precision]
      :param layers: Use this many layers in approximation
      :type layers: int
      :param cluster: Cluster lines closer than this in approximation
      :type cluster: int
      :rtype: Image
      :raises Error:
      
   .. method:: conva(mask, layers=int, cluster=int)
      
      Approximate integer convolution.
      
      Example:
          out = in.conva(mask, layers=int, cluster=int)
      
      :param mask: Input matrix image
      :type mask: Image
      :param layers: Use this many layers in approximation
      :type layers: int
      :param cluster: Cluster lines closer than this in approximation
      :type cluster: int
      :rtype: Image
      :raises Error:
      
   .. method:: convasep(mask, layers=int)
      
      Approximate separable integer convolution.
      
      Example:
          out = in.convasep(mask, layers=int)
      
      :param mask: Input matrix image
      :type mask: Image
      :param layers: Use this many layers in approximation
      :type layers: int
      :rtype: Image
      :raises Error:
      
   .. method:: convf(mask)
      
      Float convolution operation.
      
      Example:
          out = in.convf(mask)
      
      :param mask: Input matrix image
      :type mask: Image
      :rtype: Image
      :raises Error:
      
   .. method:: convi(mask)
      
      Int convolution operation.
      
      Example:
          out = in.convi(mask)
      
      :param mask: Input matrix image
      :type mask: Image
      :rtype: Image
      :raises Error:
      
   .. method:: convsep(mask, precision=Union[str, Precision], layers=int, cluster=int)
      
      Separable convolution operation.
      
      Example:
          out = in.convsep(mask, precision=Union[str, Precision], layers=int, cluster=int)
      
      :param mask: Input matrix image
      :type mask: Image
      :param precision: Convolve with this precision
      :type precision: Union[str, Precision]
      :param layers: Use this many layers in approximation
      :type layers: int
      :param cluster: Cluster lines closer than this in approximation
      :type cluster: int
      :rtype: Image
      :raises Error:
      
   .. method:: copy(width=int, height=int, bands=int, format=Union[str, BandFormat], coding=Union[str, Coding], interpretation=Union[str, Interpretation], xres=float, yres=float, xoffset=int, yoffset=int)
      
      Copy an image.
      
      Example:
          out = in.copy(width=int, height=int, bands=int, format=Union[str, BandFormat], coding=Union[str, Coding], interpretation=Union[str, Interpretation], xres=float, yres=float, xoffset=int, yoffset=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param bands: Number of bands in image
      :type bands: int
      :param format: Pixel format in image
      :type format: Union[str, BandFormat]
      :param coding: Pixel coding
      :type coding: Union[str, Coding]
      :param interpretation: Pixel interpretation
      :type interpretation: Union[str, Interpretation]
      :param xres: Horizontal resolution in pixels/mm
      :type xres: float
      :param yres: Vertical resolution in pixels/mm
      :type yres: float
      :param xoffset: Horizontal offset of origin
      :type xoffset: int
      :param yoffset: Vertical offset of origin
      :type yoffset: int
      :rtype: Image
      :raises Error:
      
   .. method:: countlines(direction)
      
      Count lines in an image.
      
      Example:
          nolines = in.countlines(direction)
      
      :param direction: Countlines left-right or up-down
      :type direction: Union[str, Direction]
      :rtype: float
      :raises Error:
      
   .. method:: crop(left, top, width, height)
      
      Extract an area from an image.
      
      Example:
          out = input.crop(left, top, width, height)
      
      :param left: Left edge of extract area
      :type left: int
      :param top: Top edge of extract area
      :type top: int
      :param width: Width of extract area
      :type width: int
      :param height: Height of extract area
      :type height: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: csvload(filename, skip=int, lines=int, whitespace=str, separator=str, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load csv.
      
      Example:
          out = pyvips.Image.csvload(filename, skip=int, lines=int, whitespace=str, separator=str, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param skip: Skip this many lines at the start of the file
      :type skip: int
      :param lines: Read this many lines from the file
      :type lines: int
      :param whitespace: Set of whitespace characters
      :type whitespace: str
      :param separator: Set of separator characters
      :type separator: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: csvload_source(source, skip=int, lines=int, whitespace=str, separator=str, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load csv.
      
      Example:
          out = pyvips.Image.csvload_source(source, skip=int, lines=int, whitespace=str, separator=str, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param skip: Skip this many lines at the start of the file
      :type skip: int
      :param lines: Read this many lines from the file
      :type lines: int
      :param whitespace: Set of whitespace characters
      :type whitespace: str
      :param separator: Set of separator characters
      :type separator: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: csvsave(filename, separator=str, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to csv.
      
      Example:
          in.csvsave(filename, separator=str, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param separator: Separator characters
      :type separator: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: csvsave_target(target, separator=str, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to csv.
      
      Example:
          in.csvsave_target(target, separator=str, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param separator: Separator characters
      :type separator: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: dE00(right)
      
      Calculate dE00.
      
      Example:
          out = left.dE00(right)
      
      :param right: Right-hand input image
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: dE76(right)
      
      Calculate dE76.
      
      Example:
          out = left.dE76(right)
      
      :param right: Right-hand input image
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: dECMC(right)
      
      Calculate dECMC.
      
      Example:
          out = left.dECMC(right)
      
      :param right: Right-hand input image
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: dcrawload(filename, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load RAW camera files.
      
      Example:
          out = pyvips.Image.dcrawload(filename, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: dcrawload_buffer(buffer, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load RAW camera files.
      
      Example:
          out = pyvips.Image.dcrawload_buffer(buffer, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: dcrawload_source(source, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load RAW camera files.
      
      Example:
          out = pyvips.Image.dcrawload_source(source, bitdepth=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: deviate()
      
      Find image standard deviation.
      
      Example:
          out = in.deviate()
      
      :rtype: float
      :raises Error:
      
   .. method:: divide(right)
      
      Divide two images.
      
      Example:
          out = left.divide(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: draw_circle(ink, cx, cy, radius, fill=bool)
      
      Draw a circle on an image.
      
      Example:
          image = image.draw_circle(ink, cx, cy, radius, fill=bool)
      
      :param ink: Color for pixels
      :type ink: list[float]
      :param cx: Centre of draw_circle
      :type cx: int
      :param cy: Centre of draw_circle
      :type cy: int
      :param radius: Radius in pixels
      :type radius: int
      :param fill: Draw a solid object
      :type fill: bool
      :rtype: Image
      :raises Error:
      
   .. method:: draw_flood(ink, x, y, test=Image, equal=bool, left=bool, top=bool, width=bool, height=bool)
      
      Flood-fill an area.
      
      Example:
          image = image.draw_flood(ink, x, y, test=Image, equal=bool)
      
      :param ink: Color for pixels
      :type ink: list[float]
      :param x: DrawFlood start point
      :type x: int
      :param y: DrawFlood start point
      :type y: int
      :param test: Test pixels in this image
      :type test: Image
      :param equal: DrawFlood while equal to edge
      :type equal: bool
      :param left: enable output: Left edge of modified area
      :type left: bool
      :param top: enable output: Top edge of modified area
      :type top: bool
      :param width: enable output: Width of modified area
      :type width: bool
      :param height: enable output: Height of modified area
      :type height: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: draw_image(sub, x, y, mode=Union[str, CombineMode])
      
      Paint an image into another image.
      
      Example:
          image = image.draw_image(sub, x, y, mode=Union[str, CombineMode])
      
      :param sub: Sub-image to insert into main image
      :type sub: Image
      :param x: Draw image here
      :type x: int
      :param y: Draw image here
      :type y: int
      :param mode: Combining mode
      :type mode: Union[str, CombineMode]
      :rtype: Image
      :raises Error:
      
   .. method:: draw_line(ink, x1, y1, x2, y2)
      
      Draw a line on an image.
      
      Example:
          image = image.draw_line(ink, x1, y1, x2, y2)
      
      :param ink: Color for pixels
      :type ink: list[float]
      :param x1: Start of draw_line
      :type x1: int
      :param y1: Start of draw_line
      :type y1: int
      :param x2: End of draw_line
      :type x2: int
      :param y2: End of draw_line
      :type y2: int
      :rtype: Image
      :raises Error:
      
   .. method:: draw_mask(ink, mask, x, y)
      
      Draw a mask on an image.
      
      Example:
          image = image.draw_mask(ink, mask, x, y)
      
      :param ink: Color for pixels
      :type ink: list[float]
      :param mask: Mask of pixels to draw
      :type mask: Image
      :param x: Draw mask here
      :type x: int
      :param y: Draw mask here
      :type y: int
      :rtype: Image
      :raises Error:
      
   .. method:: draw_rect(ink, left, top, width, height, fill=bool)
      
      Paint a rectangle on an image.
      
      Example:
          image = image.draw_rect(ink, left, top, width, height, fill=bool)
      
      :param ink: Color for pixels
      :type ink: list[float]
      :param left: Rect to fill
      :type left: int
      :param top: Rect to fill
      :type top: int
      :param width: Rect to fill
      :type width: int
      :param height: Rect to fill
      :type height: int
      :param fill: Draw a solid object
      :type fill: bool
      :rtype: Image
      :raises Error:
      
   .. method:: draw_smudge(left, top, width, height)
      
      Blur a rectangle on an image.
      
      Example:
          image = image.draw_smudge(left, top, width, height)
      
      :param left: Rect to fill
      :type left: int
      :param top: Rect to fill
      :type top: int
      :param width: Rect to fill
      :type width: int
      :param height: Rect to fill
      :type height: int
      :rtype: Image
      :raises Error:
      
   .. method:: dzsave(filename, imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to deepzoom file.
      
      Example:
          in.dzsave(filename, imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param imagename: Image name
      :type imagename: str
      :param layout: Directory layout
      :type layout: Union[str, ForeignDzLayout]
      :param suffix: Filename suffix for tiles
      :type suffix: str
      :param overlap: Tile overlap in pixels
      :type overlap: int
      :param tile_size: Tile size in pixels
      :type tile_size: int
      :param centre: Center image in tile
      :type centre: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param angle: Rotate image during save
      :type angle: Union[str, Angle]
      :param container: Pyramid container type
      :type container: Union[str, ForeignDzContainer]
      :param compression: ZIP deflate compression level
      :type compression: int
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param skip_blanks: Skip tiles which are nearly equal to the background
      :type skip_blanks: int
      :param id: Resource ID
      :type id: str
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: dzsave_buffer(imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to dz buffer.
      
      Example:
          buffer = in.dzsave_buffer(imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param imagename: Image name
      :type imagename: str
      :param layout: Directory layout
      :type layout: Union[str, ForeignDzLayout]
      :param suffix: Filename suffix for tiles
      :type suffix: str
      :param overlap: Tile overlap in pixels
      :type overlap: int
      :param tile_size: Tile size in pixels
      :type tile_size: int
      :param centre: Center image in tile
      :type centre: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param angle: Rotate image during save
      :type angle: Union[str, Angle]
      :param container: Pyramid container type
      :type container: Union[str, ForeignDzContainer]
      :param compression: ZIP deflate compression level
      :type compression: int
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param skip_blanks: Skip tiles which are nearly equal to the background
      :type skip_blanks: int
      :param id: Resource ID
      :type id: str
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: dzsave_target(target, imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to deepzoom target.
      
      Example:
          in.dzsave_target(target, imagename=str, layout=Union[str, ForeignDzLayout], suffix=str, overlap=int, tile_size=int, centre=bool, depth=Union[str, ForeignDzDepth], angle=Union[str, Angle], container=Union[str, ForeignDzContainer], compression=int, region_shrink=Union[str, RegionShrink], skip_blanks=int, id=str, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param imagename: Image name
      :type imagename: str
      :param layout: Directory layout
      :type layout: Union[str, ForeignDzLayout]
      :param suffix: Filename suffix for tiles
      :type suffix: str
      :param overlap: Tile overlap in pixels
      :type overlap: int
      :param tile_size: Tile size in pixels
      :type tile_size: int
      :param centre: Center image in tile
      :type centre: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param angle: Rotate image during save
      :type angle: Union[str, Angle]
      :param container: Pyramid container type
      :type container: Union[str, ForeignDzContainer]
      :param compression: ZIP deflate compression level
      :type compression: int
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param skip_blanks: Skip tiles which are nearly equal to the background
      :type skip_blanks: int
      :param id: Resource ID
      :type id: str
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: embed(x, y, width, height, extend=Union[str, Extend], background=list[float])
      
      Embed an image in a larger image.
      
      Example:
          out = in.embed(x, y, width, height, extend=Union[str, Extend], background=list[float])
      
      :param x: Left edge of input in output
      :type x: int
      :param y: Top edge of input in output
      :type y: int
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param extend: How to generate the extra pixels
      :type extend: Union[str, Extend]
      :param background: Color for background pixels
      :type background: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: extract_area(left, top, width, height)
      
      Extract an area from an image.
      
      Example:
          out = input.extract_area(left, top, width, height)
      
      :param left: Left edge of extract area
      :type left: int
      :param top: Top edge of extract area
      :type top: int
      :param width: Width of extract area
      :type width: int
      :param height: Height of extract area
      :type height: int
      :rtype: Image
      :raises Error:
      
   .. method:: extract_band(band, n=int)
      
      Extract band from an image.
      
      Example:
          out = in.extract_band(band, n=int)
      
      :param band: Band to extract
      :type band: int
      :param n: Number of bands to extract
      :type n: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: eye(width, height, uchar=bool, factor=float)
      
      Make an image showing the eye's spatial response.
      
      Example:
          out = pyvips.Image.eye(width, height, uchar=bool, factor=float)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param factor: Maximum spatial frequency
      :type factor: float
      :rtype: Image
      :raises Error:
      
   .. method:: falsecolour()
      
      False-color an image.
      
      Example:
          out = in.falsecolour()
      
      :rtype: Image
      :raises Error:
      
   .. method:: fastcor(ref)
      
      Fast correlation.
      
      Example:
          out = in.fastcor(ref)
      
      :param ref: Input reference image
      :type ref: Image
      :rtype: Image
      :raises Error:
      
   .. method:: fill_nearest(distance=bool)
      
      Fill image zeros with nearest non-zero pixel.
      
      Example:
          out = in.fill_nearest()
      
      :param distance: enable output: Distance to nearest non-zero pixel
      :type distance: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: find_trim(threshold=float, background=list[float], line_art=bool)
      
      Search an image for non-edge areas.
      
      Example:
          left, top, width, height = in.find_trim(threshold=float, background=list[float], line_art=bool)
      
      :param threshold: Object threshold
      :type threshold: float
      :param background: Color for background pixels
      :type background: list[float]
      :param line_art: Enable line art mode
      :type line_art: bool
      :rtype: list[int, int, int, int]
      :raises Error:
      
   .. staticmethod:: fitsload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load a FITS image.
      
      Example:
          out = pyvips.Image.fitsload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: fitsload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load FITS from a source.
      
      Example:
          out = pyvips.Image.fitsload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: fitssave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to fits file.
      
      Example:
          in.fitssave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: flatten(background=list[float], max_alpha=float)
      
      Flatten alpha out of an image.
      
      Example:
          out = in.flatten(background=list[float], max_alpha=float)
      
      :param background: Background value
      :type background: list[float]
      :param max_alpha: Maximum value of alpha channel
      :type max_alpha: float
      :rtype: Image
      :raises Error:
      
   .. method:: flip(direction)
      
      Flip an image.
      
      Example:
          out = in.flip(direction)
      
      :param direction: Direction to flip image
      :type direction: Union[str, Direction]
      :rtype: Image
      :raises Error:
      
   .. method:: float2rad()
      
      Transform float RGB to Radiance coding.
      
      Example:
          out = in.float2rad()
      
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: fractsurf(width, height, fractal_dimension)
      
      Make a fractal surface.
      
      Example:
          out = pyvips.Image.fractsurf(width, height, fractal_dimension)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param fractal_dimension: Fractal dimension
      :type fractal_dimension: float
      :rtype: Image
      :raises Error:
      
   .. method:: freqmult(mask)
      
      Frequency-domain filtering.
      
      Example:
          out = in.freqmult(mask)
      
      :param mask: Input mask image
      :type mask: Image
      :rtype: Image
      :raises Error:
      
   .. method:: fwfft()
      
      Forward FFT.
      
      Example:
          out = in.fwfft()
      
      :rtype: Image
      :raises Error:
      
   .. method:: gamma(exponent=float)
      
      Gamma an image.
      
      Example:
          out = in.gamma(exponent=float)
      
      :param exponent: Gamma factor
      :type exponent: float
      :rtype: Image
      :raises Error:
      
   .. method:: gaussblur(sigma, min_ampl=float, precision=Union[str, Precision])
      
      Gaussian blur.
      
      Example:
          out = in.gaussblur(sigma, min_ampl=float, precision=Union[str, Precision])
      
      :param sigma: Sigma of Gaussian
      :type sigma: float
      :param min_ampl: Minimum amplitude of Gaussian
      :type min_ampl: float
      :param precision: Convolve with this precision
      :type precision: Union[str, Precision]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: gaussmat(sigma, min_ampl, separable=bool, precision=Union[str, Precision])
      
      Make a gaussian image.
      
      Example:
          out = pyvips.Image.gaussmat(sigma, min_ampl, separable=bool, precision=Union[str, Precision])
      
      :param sigma: Sigma of Gaussian
      :type sigma: float
      :param min_ampl: Minimum amplitude of Gaussian
      :type min_ampl: float
      :param separable: Generate separable Gaussian
      :type separable: bool
      :param precision: Generate with this precision
      :type precision: Union[str, Precision]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: gaussnoise(width, height, sigma=float, mean=float, seed=int)
      
      Make a gaussnoise image.
      
      Example:
          out = pyvips.Image.gaussnoise(width, height, sigma=float, mean=float, seed=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param sigma: Standard deviation of pixels in generated image
      :type sigma: float
      :param mean: Mean of pixels in generated image
      :type mean: float
      :param seed: Random number seed
      :type seed: int
      :rtype: Image
      :raises Error:
      
   .. method:: getpoint(x, y, unpack_complex=bool)
      
      Read a point from an image.
      
      Example:
          out_array = in.getpoint(x, y, unpack_complex=bool)
      
      :param x: Point to read
      :type x: int
      :param y: Point to read
      :type y: int
      :param unpack_complex: Complex pixels should be unpacked
      :type unpack_complex: bool
      :rtype: list[float]
      :raises Error:
      
   .. staticmethod:: gifload(filename, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load GIF with libnsgif.
      
      Example:
          out = pyvips.Image.gifload(filename, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param page: First page to load
      :type page: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: gifload_buffer(buffer, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load GIF with libnsgif.
      
      Example:
          out = pyvips.Image.gifload_buffer(buffer, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param page: First page to load
      :type page: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: gifload_source(source, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load gif from source.
      
      Example:
          out = pyvips.Image.gifload_source(source, n=int, page=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param page: First page to load
      :type page: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: gifsave(filename, dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as gif.
      
      Example:
          in.gifsave(filename, dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param dither: Amount of dithering
      :type dither: float
      :param effort: Quantisation effort
      :type effort: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param interframe_maxerror: Maximum inter-frame error for transparency
      :type interframe_maxerror: float
      :param reuse: Reuse palette from input
      :type reuse: bool
      :param interpalette_maxerror: Maximum inter-palette error for palette reusage
      :type interpalette_maxerror: float
      :param interlace: Generate an interlaced (progressive) GIF
      :type interlace: bool
      :param keep_duplicate_frames: Keep duplicate frames in the output instead of combining them
      :type keep_duplicate_frames: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: gifsave_buffer(dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as gif.
      
      Example:
          buffer = in.gifsave_buffer(dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param dither: Amount of dithering
      :type dither: float
      :param effort: Quantisation effort
      :type effort: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param interframe_maxerror: Maximum inter-frame error for transparency
      :type interframe_maxerror: float
      :param reuse: Reuse palette from input
      :type reuse: bool
      :param interpalette_maxerror: Maximum inter-palette error for palette reusage
      :type interpalette_maxerror: float
      :param interlace: Generate an interlaced (progressive) GIF
      :type interlace: bool
      :param keep_duplicate_frames: Keep duplicate frames in the output instead of combining them
      :type keep_duplicate_frames: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: gifsave_target(target, dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as gif.
      
      Example:
          in.gifsave_target(target, dither=float, effort=int, bitdepth=int, interframe_maxerror=float, reuse=bool, interpalette_maxerror=float, interlace=bool, keep_duplicate_frames=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param dither: Amount of dithering
      :type dither: float
      :param effort: Quantisation effort
      :type effort: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param interframe_maxerror: Maximum inter-frame error for transparency
      :type interframe_maxerror: float
      :param reuse: Reuse palette from input
      :type reuse: bool
      :param interpalette_maxerror: Maximum inter-palette error for palette reusage
      :type interpalette_maxerror: float
      :param interlace: Generate an interlaced (progressive) GIF
      :type interlace: bool
      :param keep_duplicate_frames: Keep duplicate frames in the output instead of combining them
      :type keep_duplicate_frames: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: globalbalance(gamma=float, int_output=bool)
      
      Global balance an image mosaic.
      
      Example:
          out = in.globalbalance(gamma=float, int_output=bool)
      
      :param gamma: Image gamma
      :type gamma: float
      :param int_output: Integer output
      :type int_output: bool
      :rtype: Image
      :raises Error:
      
   .. method:: gravity(direction, width, height, extend=Union[str, Extend], background=list[float])
      
      Place an image within a larger image with a certain gravity.
      
      Example:
          out = in.gravity(direction, width, height, extend=Union[str, Extend], background=list[float])
      
      :param direction: Direction to place image within width/height
      :type direction: Union[str, CompassDirection]
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param extend: How to generate the extra pixels
      :type extend: Union[str, Extend]
      :param background: Color for background pixels
      :type background: list[float]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: grey(width, height, uchar=bool)
      
      Make a grey ramp image.
      
      Example:
          out = pyvips.Image.grey(width, height, uchar=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :rtype: Image
      :raises Error:
      
   .. method:: grid(tile_height, across, down)
      
      Grid an image.
      
      Example:
          out = in.grid(tile_height, across, down)
      
      :param tile_height: Chop into tiles this high
      :type tile_height: int
      :param across: Number of tiles across
      :type across: int
      :param down: Number of tiles down
      :type down: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: heifload(filename, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load a HEIF image.
      
      Example:
          out = pyvips.Image.heifload(filename, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param thumbnail: Fetch thumbnail image
      :type thumbnail: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: heifload_buffer(buffer, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load a HEIF image.
      
      Example:
          out = pyvips.Image.heifload_buffer(buffer, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param thumbnail: Fetch thumbnail image
      :type thumbnail: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: heifload_source(source, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load a HEIF image.
      
      Example:
          out = pyvips.Image.heifload_source(source, page=int, n=int, thumbnail=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param thumbnail: Fetch thumbnail image
      :type thumbnail: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: heifsave(filename, Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in HEIF format.
      
      Example:
          in.heifsave(filename, Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param Q: Q factor
      :type Q: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param compression: Compression format
      :type compression: Union[str, ForeignHeifCompression]
      :param effort: CPU effort
      :type effort: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param encoder: Select encoder to use
      :type encoder: Union[str, ForeignHeifEncoder]
      :param tune: Tuning parameters
      :type tune: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: heifsave_buffer(Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in HEIF format.
      
      Example:
          buffer = in.heifsave_buffer(Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param compression: Compression format
      :type compression: Union[str, ForeignHeifCompression]
      :param effort: CPU effort
      :type effort: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param encoder: Select encoder to use
      :type encoder: Union[str, ForeignHeifEncoder]
      :param tune: Tuning parameters
      :type tune: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: heifsave_target(target, Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in HEIF format.
      
      Example:
          in.heifsave_target(target, Q=int, bitdepth=int, lossless=bool, compression=Union[str, ForeignHeifCompression], effort=int, subsample_mode=Union[str, ForeignSubsample], encoder=Union[str, ForeignHeifEncoder], tune=str, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param Q: Q factor
      :type Q: int
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param compression: Compression format
      :type compression: Union[str, ForeignHeifCompression]
      :param effort: CPU effort
      :type effort: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param encoder: Select encoder to use
      :type encoder: Union[str, ForeignHeifEncoder]
      :param tune: Tuning parameters
      :type tune: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: hist_cum()
      
      Form cumulative histogram.
      
      Example:
          out = in.hist_cum()
      
      :rtype: Image
      :raises Error:
      
   .. method:: hist_entropy()
      
      Estimate image entropy.
      
      Example:
          out = in.hist_entropy()
      
      :rtype: float
      :raises Error:
      
   .. method:: hist_equal(band=int)
      
      Histogram equalisation.
      
      Example:
          out = in.hist_equal(band=int)
      
      :param band: Equalise with this band
      :type band: int
      :rtype: Image
      :raises Error:
      
   .. method:: hist_find(band=int)
      
      Find image histogram.
      
      Example:
          out = in.hist_find(band=int)
      
      :param band: Find histogram of band
      :type band: int
      :rtype: Image
      :raises Error:
      
   .. method:: hist_find_indexed(index, combine=Union[str, Combine])
      
      Find indexed image histogram.
      
      Example:
          out = in.hist_find_indexed(index, combine=Union[str, Combine])
      
      :param index: Index image
      :type index: Image
      :param combine: Combine bins like this
      :type combine: Union[str, Combine]
      :rtype: Image
      :raises Error:
      
   .. method:: hist_find_ndim(bins=int)
      
      Find n-dimensional image histogram.
      
      Example:
          out = in.hist_find_ndim(bins=int)
      
      :param bins: Number of bins in each dimension
      :type bins: int
      :rtype: Image
      :raises Error:
      
   .. method:: hist_ismonotonic()
      
      Test for monotonicity.
      
      Example:
          monotonic = in.hist_ismonotonic()
      
      :rtype: bool
      :raises Error:
      
   .. method:: hist_local(width, height, max_slope=int)
      
      Local histogram equalisation.
      
      Example:
          out = in.hist_local(width, height, max_slope=int)
      
      :param width: Window width in pixels
      :type width: int
      :param height: Window height in pixels
      :type height: int
      :param max_slope: Maximum slope (CLAHE)
      :type max_slope: int
      :rtype: Image
      :raises Error:
      
   .. method:: hist_match(ref)
      
      Match two histograms.
      
      Example:
          out = in.hist_match(ref)
      
      :param ref: Reference histogram
      :type ref: Image
      :rtype: Image
      :raises Error:
      
   .. method:: hist_norm()
      
      Normalise histogram.
      
      Example:
          out = in.hist_norm()
      
      :rtype: Image
      :raises Error:
      
   .. method:: hist_plot()
      
      Plot histogram.
      
      Example:
          out = in.hist_plot()
      
      :rtype: Image
      :raises Error:
      
   .. method:: hough_circle(scale=int, min_radius=int, max_radius=int)
      
      Find hough circle transform.
      
      Example:
          out = in.hough_circle(scale=int, min_radius=int, max_radius=int)
      
      :param scale: Scale down dimensions by this factor
      :type scale: int
      :param min_radius: Smallest radius to search for
      :type min_radius: int
      :param max_radius: Largest radius to search for
      :type max_radius: int
      :rtype: Image
      :raises Error:
      
   .. method:: hough_line(width=int, height=int)
      
      Find hough line transform.
      
      Example:
          out = in.hough_line(width=int, height=int)
      
      :param width: Horizontal size of parameter space
      :type width: int
      :param height: Vertical size of parameter space
      :type height: int
      :rtype: Image
      :raises Error:
      
   .. method:: icc_export(pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, output_profile=str, depth=int)
      
      Output to device with ICC profile.
      
      Example:
          out = in.icc_export(pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, output_profile=str, depth=int)
      
      :param pcs: Set Profile Connection Space
      :type pcs: Union[str, PCS]
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param black_point_compensation: Enable black point compensation
      :type black_point_compensation: bool
      :param output_profile: Filename to load output profile from
      :type output_profile: str
      :param depth: Output device space depth in bits
      :type depth: int
      :rtype: Image
      :raises Error:
      
   .. method:: icc_import(pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, embedded=bool, input_profile=str)
      
      Import from device with ICC profile.
      
      Example:
          out = in.icc_import(pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, embedded=bool, input_profile=str)
      
      :param pcs: Set Profile Connection Space
      :type pcs: Union[str, PCS]
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param black_point_compensation: Enable black point compensation
      :type black_point_compensation: bool
      :param embedded: Use embedded input profile, if available
      :type embedded: bool
      :param input_profile: Filename to load input profile from
      :type input_profile: str
      :rtype: Image
      :raises Error:
      
   .. method:: icc_transform(output_profile, pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, embedded=bool, input_profile=str, depth=int)
      
      Transform between devices with ICC profiles.
      
      Example:
          out = in.icc_transform(output_profile, pcs=Union[str, PCS], intent=Union[str, Intent], black_point_compensation=bool, embedded=bool, input_profile=str, depth=int)
      
      :param output_profile: Filename to load output profile from
      :type output_profile: str
      :param pcs: Set Profile Connection Space
      :type pcs: Union[str, PCS]
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param black_point_compensation: Enable black point compensation
      :type black_point_compensation: bool
      :param embedded: Use embedded input profile, if available
      :type embedded: bool
      :param input_profile: Filename to load input profile from
      :type input_profile: str
      :param depth: Output device space depth in bits
      :type depth: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: identity(bands=int, ushort=bool, size=int)
      
      Make a 1D image where pixel values are indexes.
      
      Example:
          out = pyvips.Image.identity(bands=int, ushort=bool, size=int)
      
      :param bands: Number of bands in LUT
      :type bands: int
      :param ushort: Create a 16-bit LUT
      :type ushort: bool
      :param size: Size of 16-bit LUT
      :type size: int
      :rtype: Image
      :raises Error:
      
   .. method:: insert(sub, x, y, expand=bool, background=list[float])
      
      Insert image @sub into @main at @x, @y.
      
      Example:
          out = main.insert(sub, x, y, expand=bool, background=list[float])
      
      :param sub: Sub-image to insert into main image
      :type sub: Image
      :param x: Left edge of sub in main
      :type x: int
      :param y: Top edge of sub in main
      :type y: int
      :param expand: Expand output to hold all of both inputs
      :type expand: bool
      :param background: Color for new pixels
      :type background: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: invert()
      
      Invert an image.
      
      Example:
          out = in.invert()
      
      :rtype: Image
      :raises Error:
      
   .. method:: invertlut(size=int)
      
      Build an inverted look-up table.
      
      Example:
          out = in.invertlut(size=int)
      
      :param size: LUT size to generate
      :type size: int
      :rtype: Image
      :raises Error:
      
   .. method:: invfft(real=bool)
      
      Inverse FFT.
      
      Example:
          out = in.invfft(real=bool)
      
      :param real: Output only the real part of the transform
      :type real: bool
      :rtype: Image
      :raises Error:
      
   .. method:: join(in2, direction, expand=bool, shim=int, background=list[float], align=Union[str, Align])
      
      Join a pair of images.
      
      Example:
          out = in1.join(in2, direction, expand=bool, shim=int, background=list[float], align=Union[str, Align])
      
      :param in2: Second input image
      :type in2: Image
      :param direction: Join left-right or up-down
      :type direction: Union[str, Direction]
      :param expand: Expand output to hold all of both inputs
      :type expand: bool
      :param shim: Pixels between images
      :type shim: int
      :param background: Colour for new pixels
      :type background: list[float]
      :param align: Align on the low, centre or high coordinate edge
      :type align: Union[str, Align]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: jp2kload(filename, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load JPEG2000 image.
      
      Example:
          out = pyvips.Image.jp2kload(filename, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: Load this page from the image
      :type page: int
      :param oneshot: Load images a frame at a time
      :type oneshot: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jp2kload_buffer(buffer, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load JPEG2000 image.
      
      Example:
          out = pyvips.Image.jp2kload_buffer(buffer, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: Load this page from the image
      :type page: int
      :param oneshot: Load images a frame at a time
      :type oneshot: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jp2kload_source(source, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load JPEG2000 image.
      
      Example:
          out = pyvips.Image.jp2kload_source(source, page=int, oneshot=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: Load this page from the image
      :type page: int
      :param oneshot: Load images a frame at a time
      :type oneshot: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: jp2ksave(filename, tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG2000 format.
      
      Example:
          in.jp2ksave(filename, tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Q factor
      :type Q: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: jp2ksave_buffer(tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG2000 format.
      
      Example:
          buffer = in.jp2ksave_buffer(tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Q factor
      :type Q: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: jp2ksave_target(target, tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG2000 format.
      
      Example:
          in.jp2ksave_target(target, tile_width=int, tile_height=int, lossless=bool, Q=int, subsample_mode=Union[str, ForeignSubsample], keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Q factor
      :type Q: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: jpegload(filename, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load jpeg from file.
      
      Example:
          out = pyvips.Image.jpegload(filename, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param shrink: Shrink factor on load
      :type shrink: int
      :param autorotate: Rotate image using exif orientation
      :type autorotate: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jpegload_buffer(buffer, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load jpeg from buffer.
      
      Example:
          out = pyvips.Image.jpegload_buffer(buffer, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param shrink: Shrink factor on load
      :type shrink: int
      :param autorotate: Rotate image using exif orientation
      :type autorotate: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jpegload_source(source, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load image from jpeg source.
      
      Example:
          out = pyvips.Image.jpegload_source(source, shrink=int, autorotate=bool, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param shrink: Shrink factor on load
      :type shrink: int
      :param autorotate: Rotate image using exif orientation
      :type autorotate: bool
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: jpegsave(filename, Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as jpeg.
      
      Example:
          in.jpegsave(filename, Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param Q: Q factor
      :type Q: int
      :param optimize_coding: Compute optimal Huffman coding tables
      :type optimize_coding: bool
      :param interlace: Generate an interlaced (progressive) jpeg
      :type interlace: bool
      :param trellis_quant: Apply trellis quantisation to each 8x8 block
      :type trellis_quant: bool
      :param overshoot_deringing: Apply overshooting to samples with extreme values
      :type overshoot_deringing: bool
      :param optimize_scans: Split spectrum of DCT coefficients into separate scans
      :type optimize_scans: bool
      :param quant_table: Use predefined quantization table with given index
      :type quant_table: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param restart_interval: Add restart markers every specified number of mcu
      :type restart_interval: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: jpegsave_buffer(Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as jpeg.
      
      Example:
          buffer = in.jpegsave_buffer(Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param optimize_coding: Compute optimal Huffman coding tables
      :type optimize_coding: bool
      :param interlace: Generate an interlaced (progressive) jpeg
      :type interlace: bool
      :param trellis_quant: Apply trellis quantisation to each 8x8 block
      :type trellis_quant: bool
      :param overshoot_deringing: Apply overshooting to samples with extreme values
      :type overshoot_deringing: bool
      :param optimize_scans: Split spectrum of DCT coefficients into separate scans
      :type optimize_scans: bool
      :param quant_table: Use predefined quantization table with given index
      :type quant_table: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param restart_interval: Add restart markers every specified number of mcu
      :type restart_interval: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: jpegsave_mime(Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to jpeg mime.
      
      Example:
          in.jpegsave_mime(Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param optimize_coding: Compute optimal Huffman coding tables
      :type optimize_coding: bool
      :param interlace: Generate an interlaced (progressive) jpeg
      :type interlace: bool
      :param trellis_quant: Apply trellis quantisation to each 8x8 block
      :type trellis_quant: bool
      :param overshoot_deringing: Apply overshooting to samples with extreme values
      :type overshoot_deringing: bool
      :param optimize_scans: Split spectrum of DCT coefficients into separate scans
      :type optimize_scans: bool
      :param quant_table: Use predefined quantization table with given index
      :type quant_table: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param restart_interval: Add restart markers every specified number of mcu
      :type restart_interval: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: jpegsave_target(target, Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as jpeg.
      
      Example:
          in.jpegsave_target(target, Q=int, optimize_coding=bool, interlace=bool, trellis_quant=bool, overshoot_deringing=bool, optimize_scans=bool, quant_table=int, subsample_mode=Union[str, ForeignSubsample], restart_interval=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param Q: Q factor
      :type Q: int
      :param optimize_coding: Compute optimal Huffman coding tables
      :type optimize_coding: bool
      :param interlace: Generate an interlaced (progressive) jpeg
      :type interlace: bool
      :param trellis_quant: Apply trellis quantisation to each 8x8 block
      :type trellis_quant: bool
      :param overshoot_deringing: Apply overshooting to samples with extreme values
      :type overshoot_deringing: bool
      :param optimize_scans: Split spectrum of DCT coefficients into separate scans
      :type optimize_scans: bool
      :param quant_table: Use predefined quantization table with given index
      :type quant_table: int
      :param subsample_mode: Select chroma subsample operation mode
      :type subsample_mode: Union[str, ForeignSubsample]
      :param restart_interval: Add restart markers every specified number of mcu
      :type restart_interval: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: jxlload(filename, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load JPEG-XL image.
      
      Example:
          out = pyvips.Image.jxlload(filename, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jxlload_buffer(buffer, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load JPEG-XL image.
      
      Example:
          out = pyvips.Image.jxlload_buffer(buffer, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: jxlload_source(source, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load JPEG-XL image.
      
      Example:
          out = pyvips.Image.jxlload_source(source, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: jxlsave(filename, tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG-XL format.
      
      Example:
          in.jxlsave(filename, tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param tier: Decode speed tier
      :type tier: int
      :param distance: Target butteraugli distance
      :type distance: float
      :param effort: Encoding effort
      :type effort: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Quality factor
      :type Q: int
      :param bitdepth: Bit depth
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: jxlsave_buffer(tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG-XL format.
      
      Example:
          buffer = in.jxlsave_buffer(tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param tier: Decode speed tier
      :type tier: int
      :param distance: Target butteraugli distance
      :type distance: float
      :param effort: Encoding effort
      :type effort: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Quality factor
      :type Q: int
      :param bitdepth: Bit depth
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: jxlsave_target(target, tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in JPEG-XL format.
      
      Example:
          in.jxlsave_target(target, tier=int, distance=float, effort=int, lossless=bool, Q=int, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param tier: Decode speed tier
      :type tier: int
      :param distance: Target butteraugli distance
      :type distance: float
      :param effort: Encoding effort
      :type effort: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param Q: Quality factor
      :type Q: int
      :param bitdepth: Bit depth
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: labelregions(segments=bool)
      
      Label regions in an image.
      
      Example:
          mask = in.labelregions()
      
      :param segments: enable output: Number of discrete contiguous regions
      :type segments: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: linear(a, b, uchar=bool)
      
      Calculate (a * in + b).
      
      Example:
          out = in.linear(a, b, uchar=bool)
      
      :param a: Multiply by this
      :type a: list[float]
      :param b: Add this
      :type b: list[float]
      :param uchar: Output should be uchar
      :type uchar: bool
      :rtype: Image
      :raises Error:
      
   .. method:: linecache(tile_height=int, access=Union[str, Access], threaded=bool, persistent=bool)
      
      Cache an image as a set of lines.
      
      Example:
          out = in.linecache(tile_height=int, access=Union[str, Access], threaded=bool, persistent=bool)
      
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param access: Expected access pattern
      :type access: Union[str, Access]
      :param threaded: Allow threaded access
      :type threaded: bool
      :param persistent: Keep cache between evaluations
      :type persistent: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: logmat(sigma, min_ampl, separable=bool, precision=Union[str, Precision])
      
      Make a Laplacian of Gaussian image.
      
      Example:
          out = pyvips.Image.logmat(sigma, min_ampl, separable=bool, precision=Union[str, Precision])
      
      :param sigma: Radius of Gaussian
      :type sigma: float
      :param min_ampl: Minimum amplitude of Gaussian
      :type min_ampl: float
      :param separable: Generate separable Gaussian
      :type separable: bool
      :param precision: Generate with this precision
      :type precision: Union[str, Precision]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: magickload(filename, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load file with ImageMagick7.
      
      Example:
          out = pyvips.Image.magickload(filename, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param filename: Filename to load from
      :type filename: str
      :param density: Canvas resolution for rendering vector formats like SVG
      :type density: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: magickload_buffer(buffer, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load buffer with ImageMagick7.
      
      Example:
          out = pyvips.Image.magickload_buffer(buffer, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param density: Canvas resolution for rendering vector formats like SVG
      :type density: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: magickload_source(source, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load source with ImageMagick7.
      
      Example:
          out = pyvips.Image.magickload_source(source, density=str, page=int, n=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param density: Canvas resolution for rendering vector formats like SVG
      :type density: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: magicksave(filename, format=str, quality=int, optimize_gif_frames=bool, optimize_gif_transparency=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save file with ImageMagick.
      
      Example:
          in.magicksave(filename, format=str, quality=int, optimize_gif_frames=bool, optimize_gif_transparency=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param format: Format to save in
      :type format: str
      :param quality: Quality to use
      :type quality: int
      :param optimize_gif_frames: Apply GIF frames optimization
      :type optimize_gif_frames: bool
      :param optimize_gif_transparency: Apply GIF transparency optimization
      :type optimize_gif_transparency: bool
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: magicksave_buffer(format=str, quality=int, optimize_gif_frames=bool, optimize_gif_transparency=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to magick buffer.
      
      Example:
          buffer = in.magicksave_buffer(format=str, quality=int, optimize_gif_frames=bool, optimize_gif_transparency=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param format: Format to save in
      :type format: str
      :param quality: Quality to use
      :type quality: int
      :param optimize_gif_frames: Apply GIF frames optimization
      :type optimize_gif_frames: bool
      :param optimize_gif_transparency: Apply GIF transparency optimization
      :type optimize_gif_transparency: bool
      :param bitdepth: Number of bits per pixel
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: mapim(index, interpolate=GObject, background=list[float], premultiplied=bool, extend=Union[str, Extend])
      
      Resample with a map image.
      
      Example:
          out = in.mapim(index, interpolate=GObject, background=list[float], premultiplied=bool, extend=Union[str, Extend])
      
      :param index: Index pixels with this
      :type index: Image
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :param background: Background value
      :type background: list[float]
      :param premultiplied: Images have premultiplied alpha
      :type premultiplied: bool
      :param extend: How to generate the extra pixels
      :type extend: Union[str, Extend]
      :rtype: Image
      :raises Error:
      
   .. method:: maplut(lut, band=int)
      
      Map an image though a lut.
      
      Example:
          out = in.maplut(lut, band=int)
      
      :param lut: Look-up table image
      :type lut: Image
      :param band: Apply one-band lut to this band of in
      :type band: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a butterworth filter.
      
      Example:
          out = pyvips.Image.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param order: Filter order
      :type order: float
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a butterworth_band filter.
      
      Example:
          out = pyvips.Image.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param order: Filter order
      :type order: float
      :param frequency_cutoff_x: Frequency cutoff x
      :type frequency_cutoff_x: float
      :param frequency_cutoff_y: Frequency cutoff y
      :type frequency_cutoff_y: float
      :param radius: Radius of circle
      :type radius: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a butterworth ring filter.
      
      Example:
          out = pyvips.Image.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param order: Filter order
      :type order: float
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param ringwidth: Ringwidth
      :type ringwidth: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_fractal(width, height, fractal_dimension, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make fractal filter.
      
      Example:
          out = pyvips.Image.mask_fractal(width, height, fractal_dimension, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param fractal_dimension: Fractal dimension
      :type fractal_dimension: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a gaussian filter.
      
      Example:
          out = pyvips.Image.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a gaussian filter.
      
      Example:
          out = pyvips.Image.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff_x: Frequency cutoff x
      :type frequency_cutoff_x: float
      :param frequency_cutoff_y: Frequency cutoff y
      :type frequency_cutoff_y: float
      :param radius: Radius of circle
      :type radius: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make a gaussian ring filter.
      
      Example:
          out = pyvips.Image.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param amplitude_cutoff: Amplitude cutoff
      :type amplitude_cutoff: float
      :param ringwidth: Ringwidth
      :type ringwidth: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_ideal(width, height, frequency_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make an ideal filter.
      
      Example:
          out = pyvips.Image.mask_ideal(width, height, frequency_cutoff, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make an ideal band filter.
      
      Example:
          out = pyvips.Image.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff_x: Frequency cutoff x
      :type frequency_cutoff_x: float
      :param frequency_cutoff_y: Frequency cutoff y
      :type frequency_cutoff_y: float
      :param radius: Radius of circle
      :type radius: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: mask_ideal_ring(width, height, frequency_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      Make an ideal ring filter.
      
      Example:
          out = pyvips.Image.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, uchar=bool, nodc=bool, reject=bool, optical=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param frequency_cutoff: Frequency cutoff
      :type frequency_cutoff: float
      :param ringwidth: Ringwidth
      :type ringwidth: float
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param nodc: Remove DC component
      :type nodc: bool
      :param reject: Invert the sense of the filter
      :type reject: bool
      :param optical: Rotate quadrants to optical space
      :type optical: bool
      :rtype: Image
      :raises Error:
      
   .. method:: match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, hwindow=int, harea=int, search=bool, interpolate=GObject)
      
      First-order match of two images.
      
      Example:
          out = ref.match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, hwindow=int, harea=int, search=bool, interpolate=GObject)
      
      :param sec: Secondary image
      :type sec: Image
      :param xr1: Position of first reference tie-point
      :type xr1: int
      :param yr1: Position of first reference tie-point
      :type yr1: int
      :param xs1: Position of first secondary tie-point
      :type xs1: int
      :param ys1: Position of first secondary tie-point
      :type ys1: int
      :param xr2: Position of second reference tie-point
      :type xr2: int
      :param yr2: Position of second reference tie-point
      :type yr2: int
      :param xs2: Position of second secondary tie-point
      :type xs2: int
      :param ys2: Position of second secondary tie-point
      :type ys2: int
      :param hwindow: Half window size
      :type hwindow: int
      :param harea: Half area size
      :type harea: int
      :param search: Search to improve tie-points
      :type search: bool
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :rtype: Image
      :raises Error:
      
   .. method:: math(math)
      
      Apply a math operation to an image.
      
      Example:
          out = in.math(math)
      
      :param math: Math to perform
      :type math: Union[str, OperationMath]
      :rtype: Image
      :raises Error:
      
   .. method:: math2(right, math2)
      
      Binary math operations.
      
      Example:
          out = left.math2(right, math2)
      
      :param right: Right-hand image argument
      :type right: Image
      :param math2: Math to perform
      :type math2: Union[str, OperationMath2]
      :rtype: Image
      :raises Error:
      
   .. method:: math2_const(math2, c)
      
      Binary math operations with a constant.
      
      Example:
          out = in.math2_const(math2, c)
      
      :param math2: Math to perform
      :type math2: Union[str, OperationMath2]
      :param c: Array of constants
      :type c: list[float]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: matload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load mat from file.
      
      Example:
          out = pyvips.Image.matload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: matrixinvert()
      
      Invert a matrix.
      
      Example:
          out = in.matrixinvert()
      
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: matrixload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load matrix.
      
      Example:
          out = pyvips.Image.matrixload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: matrixload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load matrix.
      
      Example:
          out = pyvips.Image.matrixload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: matrixmultiply(right)
      
      Multiply two matrices.
      
      Example:
          out = left.matrixmultiply(right)
      
      :param right: Second matrix to multiply
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: matrixprint(keep=int, background=list[float], page_height=int, profile=str)
      
      Print matrix.
      
      Example:
          in.matrixprint(keep=int, background=list[float], page_height=int, profile=str)
      
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: matrixsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to matrix.
      
      Example:
          in.matrixsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: matrixsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to matrix.
      
      Example:
          in.matrixsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: max(size=int, x=bool, y=bool, out_array=bool, x_array=bool, y_array=bool)
      
      Find image maximum.
      
      Example:
          out = in.max(size=int)
      
      :param size: Number of maximum values to find
      :type size: int
      :param x: enable output: Horizontal position of maximum
      :type x: bool
      :param y: enable output: Vertical position of maximum
      :type y: bool
      :param out_array: enable output: Array of output values
      :type out_array: bool
      :param x_array: enable output: Array of horizontal positions
      :type x_array: bool
      :param y_array: enable output: Array of vertical positions
      :type y_array: bool
      :rtype: float or list[float, Dict[str, mixed]]
      :raises Error:
      
   .. method:: maxpair(right)
      
      Maximum of a pair of images.
      
      Example:
          out = left.maxpair(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: measure(h, v, left=int, top=int, width=int, height=int)
      
      Measure a set of patches on a color chart.
      
      Example:
          out = in.measure(h, v, left=int, top=int, width=int, height=int)
      
      :param h: Number of patches across chart
      :type h: int
      :param v: Number of patches down chart
      :type v: int
      :param left: Left edge of extract area
      :type left: int
      :param top: Top edge of extract area
      :type top: int
      :param width: Width of extract area
      :type width: int
      :param height: Height of extract area
      :type height: int
      :rtype: Image
      :raises Error:
      
   .. method:: merge(sec, direction, dx, dy, mblend=int)
      
      Merge two images.
      
      Example:
          out = ref.merge(sec, direction, dx, dy, mblend=int)
      
      :param sec: Secondary image
      :type sec: Image
      :param direction: Horizontal or vertical merge
      :type direction: Union[str, Direction]
      :param dx: Horizontal displacement from sec to ref
      :type dx: int
      :param dy: Vertical displacement from sec to ref
      :type dy: int
      :param mblend: Maximum blend size
      :type mblend: int
      :rtype: Image
      :raises Error:
      
   .. method:: min(size=int, x=bool, y=bool, out_array=bool, x_array=bool, y_array=bool)
      
      Find image minimum.
      
      Example:
          out = in.min(size=int)
      
      :param size: Number of minimum values to find
      :type size: int
      :param x: enable output: Horizontal position of minimum
      :type x: bool
      :param y: enable output: Vertical position of minimum
      :type y: bool
      :param out_array: enable output: Array of output values
      :type out_array: bool
      :param x_array: enable output: Array of horizontal positions
      :type x_array: bool
      :param y_array: enable output: Array of vertical positions
      :type y_array: bool
      :rtype: float or list[float, Dict[str, mixed]]
      :raises Error:
      
   .. method:: minpair(right)
      
      Minimum of a pair of images.
      
      Example:
          out = left.minpair(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: morph(mask, morph)
      
      Morphology operation.
      
      Example:
          out = in.morph(mask, morph)
      
      :param mask: Input matrix image
      :type mask: Image
      :param morph: Morphological operation to perform
      :type morph: Union[str, OperationMorphology]
      :rtype: Image
      :raises Error:
      
   .. method:: mosaic(sec, direction, xref, yref, xsec, ysec, hwindow=int, harea=int, mblend=int, bandno=int, dx0=bool, dy0=bool, scale1=bool, angle1=bool, dy1=bool, dx1=bool)
      
      Mosaic two images.
      
      Example:
          out = ref.mosaic(sec, direction, xref, yref, xsec, ysec, hwindow=int, harea=int, mblend=int, bandno=int)
      
      :param sec: Secondary image
      :type sec: Image
      :param direction: Horizontal or vertical mosaic
      :type direction: Union[str, Direction]
      :param xref: Position of reference tie-point
      :type xref: int
      :param yref: Position of reference tie-point
      :type yref: int
      :param xsec: Position of secondary tie-point
      :type xsec: int
      :param ysec: Position of secondary tie-point
      :type ysec: int
      :param hwindow: Half window size
      :type hwindow: int
      :param harea: Half area size
      :type harea: int
      :param mblend: Maximum blend size
      :type mblend: int
      :param bandno: Band to search for features on
      :type bandno: int
      :param dx0: enable output: Detected integer offset
      :type dx0: bool
      :param dy0: enable output: Detected integer offset
      :type dy0: bool
      :param scale1: enable output: Detected scale
      :type scale1: bool
      :param angle1: enable output: Detected rotation
      :type angle1: bool
      :param dy1: enable output: Detected first-order displacement
      :type dy1: bool
      :param dx1: enable output: Detected first-order displacement
      :type dx1: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, hwindow=int, harea=int, search=bool, interpolate=GObject, mblend=int)
      
      First-order mosaic of two images.
      
      Example:
          out = ref.mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, hwindow=int, harea=int, search=bool, interpolate=GObject, mblend=int)
      
      :param sec: Secondary image
      :type sec: Image
      :param direction: Horizontal or vertical mosaic
      :type direction: Union[str, Direction]
      :param xr1: Position of first reference tie-point
      :type xr1: int
      :param yr1: Position of first reference tie-point
      :type yr1: int
      :param xs1: Position of first secondary tie-point
      :type xs1: int
      :param ys1: Position of first secondary tie-point
      :type ys1: int
      :param xr2: Position of second reference tie-point
      :type xr2: int
      :param yr2: Position of second reference tie-point
      :type yr2: int
      :param xs2: Position of second secondary tie-point
      :type xs2: int
      :param ys2: Position of second secondary tie-point
      :type ys2: int
      :param hwindow: Half window size
      :type hwindow: int
      :param harea: Half area size
      :type harea: int
      :param search: Search to improve tie-points
      :type search: bool
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :param mblend: Maximum blend size
      :type mblend: int
      :rtype: Image
      :raises Error:
      
   .. method:: msb(band=int)
      
      Pick most-significant byte from an image.
      
      Example:
          out = in.msb(band=int)
      
      :param band: Band to msb
      :type band: int
      :rtype: Image
      :raises Error:
      
   .. method:: multiply(right)
      
      Multiply two images.
      
      Example:
          out = left.multiply(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: niftiload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load NIfTI volume.
      
      Example:
          out = pyvips.Image.niftiload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: niftiload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load NIfTI volumes.
      
      Example:
          out = pyvips.Image.niftiload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: niftisave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to nifti file.
      
      Example:
          in.niftisave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: openexrload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load an OpenEXR image.
      
      Example:
          out = pyvips.Image.openexrload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: openslideload(filename, level=int, autocrop=bool, associated=str, attach_associated=bool, rgb=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load file with OpenSlide.
      
      Example:
          out = pyvips.Image.openslideload(filename, level=int, autocrop=bool, associated=str, attach_associated=bool, rgb=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param level: Load this level from the file
      :type level: int
      :param autocrop: Crop to image bounds
      :type autocrop: bool
      :param associated: Load this associated image
      :type associated: str
      :param attach_associated: Attach all associated images
      :type attach_associated: bool
      :param rgb: Output RGB (not RGBA)
      :type rgb: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: openslideload_source(source, level=int, autocrop=bool, associated=str, attach_associated=bool, rgb=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load source with OpenSlide.
      
      Example:
          out = pyvips.Image.openslideload_source(source, level=int, autocrop=bool, associated=str, attach_associated=bool, rgb=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param level: Load this level from the file
      :type level: int
      :param autocrop: Crop to image bounds
      :type autocrop: bool
      :param associated: Load this associated image
      :type associated: str
      :param attach_associated: Attach all associated images
      :type attach_associated: bool
      :param rgb: Output RGB (not RGBA)
      :type rgb: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: pdfload(filename, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load PDF from file (poppler).
      
      Example:
          out = pyvips.Image.pdfload(filename, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param dpi: DPI to render at
      :type dpi: float
      :param scale: Factor to scale by
      :type scale: float
      :param background: Background colour
      :type background: list[float]
      :param password: Password to decrypt with
      :type password: str
      :param page_box: The region of the page to render
      :type page_box: Union[str, ForeignPdfPageBox]
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: pdfload_buffer(buffer, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load PDF from buffer (poppler).
      
      Example:
          out = pyvips.Image.pdfload_buffer(buffer, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param dpi: DPI to render at
      :type dpi: float
      :param scale: Factor to scale by
      :type scale: float
      :param background: Background colour
      :type background: list[float]
      :param password: Password to decrypt with
      :type password: str
      :param page_box: The region of the page to render
      :type page_box: Union[str, ForeignPdfPageBox]
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: pdfload_source(source, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load PDF from source (poppler).
      
      Example:
          out = pyvips.Image.pdfload_source(source, page=int, n=int, dpi=float, scale=float, background=list[float], password=str, page_box=Union[str, ForeignPdfPageBox], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param dpi: DPI to render at
      :type dpi: float
      :param scale: Factor to scale by
      :type scale: float
      :param background: Background colour
      :type background: list[float]
      :param password: Password to decrypt with
      :type password: str
      :param page_box: The region of the page to render
      :type page_box: Union[str, ForeignPdfPageBox]
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: percent(percent)
      
      Find threshold for percent of pixels.
      
      Example:
          threshold = in.percent(percent)
      
      :param percent: Percent of pixels
      :type percent: float
      :rtype: int
      :raises Error:
      
   .. staticmethod:: perlin(width, height, cell_size=int, uchar=bool, seed=int)
      
      Make a perlin noise image.
      
      Example:
          out = pyvips.Image.perlin(width, height, cell_size=int, uchar=bool, seed=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param cell_size: Size of Perlin cells
      :type cell_size: int
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param seed: Random number seed
      :type seed: int
      :rtype: Image
      :raises Error:
      
   .. method:: phasecor(in2)
      
      Calculate phase correlation.
      
      Example:
          out = in.phasecor(in2)
      
      :param in2: Second input image
      :type in2: Image
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: pngload(filename, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load png from file.
      
      Example:
          out = pyvips.Image.pngload(filename, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: pngload_buffer(buffer, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load png from buffer.
      
      Example:
          out = pyvips.Image.pngload_buffer(buffer, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: pngload_source(source, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load png from source.
      
      Example:
          out = pyvips.Image.pngload_source(source, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: pngsave(filename, compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to file as png.
      
      Example:
          in.pngsave(filename, compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param compression: Compression factor
      :type compression: int
      :param interlace: Interlace image
      :type interlace: bool
      :param filter: libpng row filter flag(s)
      :type filter: int
      :param palette: Quantise to 8bpp palette
      :type palette: bool
      :param Q: Quantisation quality
      :type Q: int
      :param dither: Amount of dithering
      :type dither: float
      :param bitdepth: Write as a 1, 2, 4, 8 or 16 bit image
      :type bitdepth: int
      :param effort: Quantisation CPU effort
      :type effort: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: pngsave_buffer(compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to buffer as png.
      
      Example:
          buffer = in.pngsave_buffer(compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param compression: Compression factor
      :type compression: int
      :param interlace: Interlace image
      :type interlace: bool
      :param filter: libpng row filter flag(s)
      :type filter: int
      :param palette: Quantise to 8bpp palette
      :type palette: bool
      :param Q: Quantisation quality
      :type Q: int
      :param dither: Amount of dithering
      :type dither: float
      :param bitdepth: Write as a 1, 2, 4, 8 or 16 bit image
      :type bitdepth: int
      :param effort: Quantisation CPU effort
      :type effort: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: pngsave_target(target, compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to target as PNG.
      
      Example:
          in.pngsave_target(target, compression=int, interlace=bool, filter=int, palette=bool, Q=int, dither=float, bitdepth=int, effort=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param compression: Compression factor
      :type compression: int
      :param interlace: Interlace image
      :type interlace: bool
      :param filter: libpng row filter flag(s)
      :type filter: int
      :param palette: Quantise to 8bpp palette
      :type palette: bool
      :param Q: Quantisation quality
      :type Q: int
      :param dither: Amount of dithering
      :type dither: float
      :param bitdepth: Write as a 1, 2, 4, 8 or 16 bit image
      :type bitdepth: int
      :param effort: Quantisation CPU effort
      :type effort: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: ppmload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load ppm from file.
      
      Example:
          out = pyvips.Image.ppmload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: ppmload_buffer(buffer, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load ppm from buffer.
      
      Example:
          out = pyvips.Image.ppmload_buffer(buffer, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: ppmload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load ppm from source.
      
      Example:
          out = pyvips.Image.ppmload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: ppmsave(filename, format=Union[str, ForeignPpmFormat], ascii=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to ppm file.
      
      Example:
          in.ppmsave(filename, format=Union[str, ForeignPpmFormat], ascii=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param format: Format to save in
      :type format: Union[str, ForeignPpmFormat]
      :param ascii: Save as ascii
      :type ascii: bool
      :param bitdepth: Set to 1 to write as a 1 bit image
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: ppmsave_target(target, format=Union[str, ForeignPpmFormat], ascii=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save to ppm.
      
      Example:
          in.ppmsave_target(target, format=Union[str, ForeignPpmFormat], ascii=bool, bitdepth=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param format: Format to save in
      :type format: Union[str, ForeignPpmFormat]
      :param ascii: Save as ascii
      :type ascii: bool
      :param bitdepth: Set to 1 to write as a 1 bit image
      :type bitdepth: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: premultiply(max_alpha=float)
      
      Premultiply image alpha.
      
      Example:
          out = in.premultiply(max_alpha=float)
      
      :param max_alpha: Maximum value of alpha channel
      :type max_alpha: float
      :rtype: Image
      :raises Error:
      
   .. method:: prewitt()
      
      Prewitt edge detector.
      
      Example:
          out = in.prewitt()
      
      :rtype: Image
      :raises Error:
      
   .. method:: profile()
      
      Find image profiles.
      
      Example:
          columns, rows = in.profile()
      
      :rtype: list[Image, Image]
      :raises Error:
      
   .. staticmethod:: profile_load(name)
      
      Load named ICC profile.
      
      Example:
          profile = pyvips.Image.profile_load(name)
      
      :param name: Profile name
      :type name: str
      :rtype: str
      :raises Error:
      
   .. method:: project()
      
      Find image projections.
      
      Example:
          columns, rows = in.project()
      
      :rtype: list[Image, Image]
      :raises Error:
      
   .. method:: quadratic(coeff, interpolate=GObject)
      
      Resample an image with a quadratic transform.
      
      Example:
          out = in.quadratic(coeff, interpolate=GObject)
      
      :param coeff: Coefficient matrix
      :type coeff: Image
      :param interpolate: Interpolate values with this
      :type interpolate: GObject
      :rtype: Image
      :raises Error:
      
   .. method:: rad2float()
      
      Unpack Radiance coding to float RGB.
      
      Example:
          out = in.rad2float()
      
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: radload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load a Radiance image from a file.
      
      Example:
          out = pyvips.Image.radload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: radload_buffer(buffer, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load rad from buffer.
      
      Example:
          out = pyvips.Image.radload_buffer(buffer, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: radload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load rad from source.
      
      Example:
          out = pyvips.Image.radload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: radsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to Radiance file.
      
      Example:
          in.radsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: radsave_buffer(keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to Radiance buffer.
      
      Example:
          buffer = in.radsave_buffer(keep=int, background=list[float], page_height=int, profile=str)
      
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: radsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to Radiance target.
      
      Example:
          in.radsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: rank(width, height, index)
      
      Rank filter.
      
      Example:
          out = in.rank(width, height, index)
      
      :param width: Window width in pixels
      :type width: int
      :param height: Window height in pixels
      :type height: int
      :param index: Select pixel at index
      :type index: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: rawload(filename, width, height, bands, offset=long, format=Union[str, BandFormat], interpretation=Union[str, Interpretation], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load raw data from a file.
      
      Example:
          out = pyvips.Image.rawload(filename, width, height, bands, offset=long, format=Union[str, BandFormat], interpretation=Union[str, Interpretation], memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param bands: Number of bands in image
      :type bands: int
      :param offset: Offset in bytes from start of file
      :type offset: long
      :param format: Pixel format in image
      :type format: Union[str, BandFormat]
      :param interpretation: Pixel interpretation
      :type interpretation: Union[str, Interpretation]
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: rawsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to raw file.
      
      Example:
          in.rawsave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: rawsave_buffer(keep=int, background=list[float], page_height=int, profile=str)
      
      Write raw image to buffer.
      
      Example:
          buffer = in.rawsave_buffer(keep=int, background=list[float], page_height=int, profile=str)
      
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: rawsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      Write raw image to target.
      
      Example:
          in.rawsave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: recomb(m)
      
      Linear recombination with matrix.
      
      Example:
          out = in.recomb(m)
      
      :param m: Matrix of coefficients
      :type m: Image
      :rtype: Image
      :raises Error:
      
   .. method:: reduce(hshrink, vshrink, kernel=Union[str, Kernel], gap=float)
      
      Reduce an image.
      
      Example:
          out = in.reduce(hshrink, vshrink, kernel=Union[str, Kernel], gap=float)
      
      :param hshrink: Horizontal shrink factor
      :type hshrink: float
      :param vshrink: Vertical shrink factor
      :type vshrink: float
      :param kernel: Resampling kernel
      :type kernel: Union[str, Kernel]
      :param gap: Reducing gap
      :type gap: float
      :rtype: Image
      :raises Error:
      
   .. method:: reduceh(hshrink, kernel=Union[str, Kernel], gap=float)
      
      Shrink an image horizontally.
      
      Example:
          out = in.reduceh(hshrink, kernel=Union[str, Kernel], gap=float)
      
      :param hshrink: Horizontal shrink factor
      :type hshrink: float
      :param kernel: Resampling kernel
      :type kernel: Union[str, Kernel]
      :param gap: Reducing gap
      :type gap: float
      :rtype: Image
      :raises Error:
      
   .. method:: reducev(vshrink, kernel=Union[str, Kernel], gap=float)
      
      Shrink an image vertically.
      
      Example:
          out = in.reducev(vshrink, kernel=Union[str, Kernel], gap=float)
      
      :param vshrink: Vertical shrink factor
      :type vshrink: float
      :param kernel: Resampling kernel
      :type kernel: Union[str, Kernel]
      :param gap: Reducing gap
      :type gap: float
      :rtype: Image
      :raises Error:
      
   .. method:: relational(right, relational)
      
      Relational operation on two images.
      
      Example:
          out = left.relational(right, relational)
      
      :param right: Right-hand image argument
      :type right: Image
      :param relational: Relational to perform
      :type relational: Union[str, OperationRelational]
      :rtype: Image
      :raises Error:
      
   .. method:: relational_const(relational, c)
      
      Relational operations against a constant.
      
      Example:
          out = in.relational_const(relational, c)
      
      :param relational: Relational to perform
      :type relational: Union[str, OperationRelational]
      :param c: Array of constants
      :type c: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: remainder(right)
      
      Remainder after integer division of two images.
      
      Example:
          out = left.remainder(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. method:: remainder_const(c)
      
      Remainder after integer division of an image and a constant.
      
      Example:
          out = in.remainder_const(c)
      
      :param c: Array of constants
      :type c: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: remosaic(old_str, new_str)
      
      Rebuild an mosaiced image.
      
      Example:
          out = in.remosaic(old_str, new_str)
      
      :param old_str: Search for this string
      :type old_str: str
      :param new_str: And swap for this string
      :type new_str: str
      :rtype: Image
      :raises Error:
      
   .. method:: replicate(across, down)
      
      Replicate an image.
      
      Example:
          out = in.replicate(across, down)
      
      :param across: Repeat this many times horizontally
      :type across: int
      :param down: Repeat this many times vertically
      :type down: int
      :rtype: Image
      :raises Error:
      
   .. method:: resize(scale, kernel=Union[str, Kernel], gap=float, vscale=float)
      
      Resize an image.
      
      Example:
          out = in.resize(scale, kernel=Union[str, Kernel], gap=float, vscale=float)
      
      :param scale: Scale image by this factor
      :type scale: float
      :param kernel: Resampling kernel
      :type kernel: Union[str, Kernel]
      :param gap: Reducing gap
      :type gap: float
      :param vscale: Vertical scale image by this factor
      :type vscale: float
      :rtype: Image
      :raises Error:
      
   .. method:: rot(angle)
      
      Rotate an image.
      
      Example:
          out = in.rot(angle)
      
      :param angle: Angle to rotate image
      :type angle: Union[str, Angle]
      :rtype: Image
      :raises Error:
      
   .. method:: rot45(angle=Union[str, Angle45])
      
      Rotate an image.
      
      Example:
          out = in.rot45(angle=Union[str, Angle45])
      
      :param angle: Angle to rotate image
      :type angle: Union[str, Angle45]
      :rtype: Image
      :raises Error:
      
   .. method:: rotate(angle, interpolate=GObject, background=list[float], odx=float, ody=float, idx=float, idy=float)
      
      Rotate an image by a number of degrees.
      
      Example:
          out = in.rotate(angle, interpolate=GObject, background=list[float], odx=float, ody=float, idx=float, idy=float)
      
      :param angle: Rotate clockwise by this many degrees
      :type angle: float
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :param background: Background value
      :type background: list[float]
      :param odx: Horizontal output displacement
      :type odx: float
      :param ody: Vertical output displacement
      :type ody: float
      :param idx: Horizontal input displacement
      :type idx: float
      :param idy: Vertical input displacement
      :type idy: float
      :rtype: Image
      :raises Error:
      
   .. method:: round(round)
      
      Perform a round function on an image.
      
      Example:
          out = in.round(round)
      
      :param round: Rounding operation to perform
      :type round: Union[str, OperationRound]
      :rtype: Image
      :raises Error:
      
   .. method:: sRGB2HSV()
      
      Transform sRGB to HSV.
      
      Example:
          out = in.sRGB2HSV()
      
      :rtype: Image
      :raises Error:
      
   .. method:: sRGB2scRGB()
      
      Convert an sRGB image to scRGB.
      
      Example:
          out = in.sRGB2scRGB()
      
      :rtype: Image
      :raises Error:
      
   .. method:: scRGB2BW(depth=int)
      
      Convert scRGB to BW.
      
      Example:
          out = in.scRGB2BW(depth=int)
      
      :param depth: Output device space depth in bits
      :type depth: int
      :rtype: Image
      :raises Error:
      
   .. method:: scRGB2XYZ()
      
      Transform scRGB to XYZ.
      
      Example:
          out = in.scRGB2XYZ()
      
      :rtype: Image
      :raises Error:
      
   .. method:: scRGB2sRGB(depth=int)
      
      Convert scRGB to sRGB.
      
      Example:
          out = in.scRGB2sRGB(depth=int)
      
      :param depth: Output device space depth in bits
      :type depth: int
      :rtype: Image
      :raises Error:
      
   .. method:: scharr()
      
      Scharr edge detector.
      
      Example:
          out = in.scharr()
      
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: sdf(width, height, shape, r=float, a=list[float], b=list[float], corners=list[float])
      
      Create an SDF image.
      
      Example:
          out = pyvips.Image.sdf(width, height, shape, r=float, a=list[float], b=list[float], corners=list[float])
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param shape: SDF shape to create
      :type shape: Union[str, SdfShape]
      :param r: Radius
      :type r: float
      :param a: Point a
      :type a: list[float]
      :param b: Point b
      :type b: list[float]
      :param corners: Corner radii
      :type corners: list[float]
      :rtype: Image
      :raises Error:
      
   .. method:: sequential(tile_height=int)
      
      Check sequential access.
      
      Example:
          out = in.sequential(tile_height=int)
      
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :rtype: Image
      :raises Error:
      
   .. method:: sharpen(sigma=float, x1=float, y2=float, y3=float, m1=float, m2=float)
      
      Unsharp masking for print.
      
      Example:
          out = in.sharpen(sigma=float, x1=float, y2=float, y3=float, m1=float, m2=float)
      
      :param sigma: Sigma of Gaussian
      :type sigma: float
      :param x1: Flat/jaggy threshold
      :type x1: float
      :param y2: Maximum brightening
      :type y2: float
      :param y3: Maximum darkening
      :type y3: float
      :param m1: Slope for flat areas
      :type m1: float
      :param m2: Slope for jaggy areas
      :type m2: float
      :rtype: Image
      :raises Error:
      
   .. method:: shrink(hshrink, vshrink, ceil=bool)
      
      Shrink an image.
      
      Example:
          out = in.shrink(hshrink, vshrink, ceil=bool)
      
      :param hshrink: Horizontal shrink factor
      :type hshrink: float
      :param vshrink: Vertical shrink factor
      :type vshrink: float
      :param ceil: Round-up output dimensions
      :type ceil: bool
      :rtype: Image
      :raises Error:
      
   .. method:: shrinkh(hshrink, ceil=bool)
      
      Shrink an image horizontally.
      
      Example:
          out = in.shrinkh(hshrink, ceil=bool)
      
      :param hshrink: Horizontal shrink factor
      :type hshrink: int
      :param ceil: Round-up output dimensions
      :type ceil: bool
      :rtype: Image
      :raises Error:
      
   .. method:: shrinkv(vshrink, ceil=bool)
      
      Shrink an image vertically.
      
      Example:
          out = in.shrinkv(vshrink, ceil=bool)
      
      :param vshrink: Vertical shrink factor
      :type vshrink: int
      :param ceil: Round-up output dimensions
      :type ceil: bool
      :rtype: Image
      :raises Error:
      
   .. method:: sign()
      
      Unit vector of pixel.
      
      Example:
          out = in.sign()
      
      :rtype: Image
      :raises Error:
      
   .. method:: similarity(scale=float, angle=float, interpolate=GObject, background=list[float], odx=float, ody=float, idx=float, idy=float)
      
      Similarity transform of an image.
      
      Example:
          out = in.similarity(scale=float, angle=float, interpolate=GObject, background=list[float], odx=float, ody=float, idx=float, idy=float)
      
      :param scale: Scale by this factor
      :type scale: float
      :param angle: Rotate clockwise by this many degrees
      :type angle: float
      :param interpolate: Interpolate pixels with this
      :type interpolate: GObject
      :param background: Background value
      :type background: list[float]
      :param odx: Horizontal output displacement
      :type odx: float
      :param ody: Vertical output displacement
      :type ody: float
      :param idx: Horizontal input displacement
      :type idx: float
      :param idy: Vertical input displacement
      :type idy: float
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: sines(width, height, uchar=bool, hfreq=float, vfreq=float)
      
      Make a 2D sine wave.
      
      Example:
          out = pyvips.Image.sines(width, height, uchar=bool, hfreq=float, vfreq=float)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :param hfreq: Horizontal spatial frequency
      :type hfreq: float
      :param vfreq: Vertical spatial frequency
      :type vfreq: float
      :rtype: Image
      :raises Error:
      
   .. method:: smartcrop(width, height, interesting=Union[str, Interesting], premultiplied=bool, attention_x=bool, attention_y=bool)
      
      Extract an area from an image.
      
      Example:
          out = input.smartcrop(width, height, interesting=Union[str, Interesting], premultiplied=bool)
      
      :param width: Width of extract area
      :type width: int
      :param height: Height of extract area
      :type height: int
      :param interesting: How to measure interestingness
      :type interesting: Union[str, Interesting]
      :param premultiplied: Input image already has premultiplied alpha
      :type premultiplied: bool
      :param attention_x: enable output: Horizontal position of attention centre
      :type attention_x: bool
      :param attention_y: enable output: Vertical position of attention centre
      :type attention_y: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: sobel()
      
      Sobel edge detector.
      
      Example:
          out = in.sobel()
      
      :rtype: Image
      :raises Error:
      
   .. method:: spcor(ref)
      
      Spatial correlation.
      
      Example:
          out = in.spcor(ref)
      
      :param ref: Input reference image
      :type ref: Image
      :rtype: Image
      :raises Error:
      
   .. method:: spectrum()
      
      Make displayable power spectrum.
      
      Example:
          out = in.spectrum()
      
      :rtype: Image
      :raises Error:
      
   .. method:: stats()
      
      Find many image stats.
      
      Example:
          out = in.stats()
      
      :rtype: Image
      :raises Error:
      
   .. method:: stdif(width, height, s0=float, b=float, m0=float, a=float)
      
      Statistical difference.
      
      Example:
          out = in.stdif(width, height, s0=float, b=float, m0=float, a=float)
      
      :param width: Window width in pixels
      :type width: int
      :param height: Window height in pixels
      :type height: int
      :param s0: New deviation
      :type s0: float
      :param b: Weight of new deviation
      :type b: float
      :param m0: New mean
      :type m0: float
      :param a: Weight of new mean
      :type a: float
      :rtype: Image
      :raises Error:
      
   .. method:: subsample(xfac, yfac, point=bool)
      
      Subsample an image.
      
      Example:
          out = input.subsample(xfac, yfac, point=bool)
      
      :param xfac: Horizontal subsample factor
      :type xfac: int
      :param yfac: Vertical subsample factor
      :type yfac: int
      :param point: Point sample
      :type point: bool
      :rtype: Image
      :raises Error:
      
   .. method:: subtract(right)
      
      Subtract two images.
      
      Example:
          out = left.subtract(right)
      
      :param right: Right-hand image argument
      :type right: Image
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: sum(in)
      
      Sum an array of images.
      
      Example:
          out = pyvips.Image.sum(in)
      
      :param in: Array of input images
      :type in: list[Image]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: svgload(filename, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load SVG with rsvg.
      
      Example:
          out = pyvips.Image.svgload(filename, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param dpi: Render at this DPI
      :type dpi: float
      :param scale: Scale output by this factor
      :type scale: float
      :param unlimited: Allow SVG of any size
      :type unlimited: bool
      :param stylesheet: Custom CSS
      :type stylesheet: str
      :param high_bitdepth: Enable scRGB 128-bit output (32-bit per channel)
      :type high_bitdepth: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: svgload_buffer(buffer, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load SVG with rsvg.
      
      Example:
          out = pyvips.Image.svgload_buffer(buffer, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param dpi: Render at this DPI
      :type dpi: float
      :param scale: Scale output by this factor
      :type scale: float
      :param unlimited: Allow SVG of any size
      :type unlimited: bool
      :param stylesheet: Custom CSS
      :type stylesheet: str
      :param high_bitdepth: Enable scRGB 128-bit output (32-bit per channel)
      :type high_bitdepth: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: svgload_source(source, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load svg from source.
      
      Example:
          out = pyvips.Image.svgload_source(source, dpi=float, scale=float, unlimited=bool, stylesheet=str, high_bitdepth=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param dpi: Render at this DPI
      :type dpi: float
      :param scale: Scale output by this factor
      :type scale: float
      :param unlimited: Allow SVG of any size
      :type unlimited: bool
      :param stylesheet: Custom CSS
      :type stylesheet: str
      :param high_bitdepth: Enable scRGB 128-bit output (32-bit per channel)
      :type high_bitdepth: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: switch(tests)
      
      Find the index of the first non-zero pixel in tests.
      
      Example:
          out = pyvips.Image.switch(tests)
      
      :param tests: Table of images to test
      :type tests: list[Image]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: system(cmd_format, in=list[Image], in_format=str, out_format=str, cache=bool, out=bool, log=bool)
      
      Run an external command.
      
      Example:
          pyvips.Image.system(cmd_format, in=list[Image], in_format=str, out_format=str, cache=bool)
      
      :param cmd_format: Command to run
      :type cmd_format: str
      :param in: Array of input images
      :type in: list[Image]
      :param in_format: Format for input filename
      :type in_format: str
      :param out_format: Format for output filename
      :type out_format: str
      :param cache: Cache this call
      :type cache: bool
      :param out: enable output: Output image
      :type out: bool
      :param log: enable output: Command log
      :type log: bool
      :rtype: list[] or list[Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: text(text, font=str, width=int, height=int, align=Union[str, Align], justify=bool, dpi=int, spacing=int, fontfile=str, rgba=bool, wrap=Union[str, TextWrap], autofit_dpi=bool)
      
      Make a text image.
      
      Example:
          out = pyvips.Image.text(text, font=str, width=int, height=int, align=Union[str, Align], justify=bool, dpi=int, spacing=int, fontfile=str, rgba=bool, wrap=Union[str, TextWrap])
      
      :param text: Text to render
      :type text: str
      :param font: Font to render with
      :type font: str
      :param width: Maximum image width in pixels
      :type width: int
      :param height: Maximum image height in pixels
      :type height: int
      :param align: Align on the low, centre or high edge
      :type align: Union[str, Align]
      :param justify: Justify lines
      :type justify: bool
      :param dpi: DPI to render at
      :type dpi: int
      :param spacing: Line spacing
      :type spacing: int
      :param fontfile: Load this font file
      :type fontfile: str
      :param rgba: Enable RGBA output
      :type rgba: bool
      :param wrap: Wrap lines on word or character boundaries
      :type wrap: Union[str, TextWrap]
      :param autofit_dpi: enable output: DPI selected by autofit
      :type autofit_dpi: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: thumbnail(filename, width, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      Generate thumbnail from file.
      
      Example:
          out = pyvips.Image.thumbnail(filename, width, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      :param filename: Filename to read from
      :type filename: str
      :param width: Size to this width
      :type width: int
      :param height: Size to this height
      :type height: int
      :param size: Only upsize, only downsize, or both
      :type size: Union[str, Size]
      :param no_rotate: Don't use orientation tags to rotate image upright
      :type no_rotate: bool
      :param crop: Reduce to fill target rectangle, then crop
      :type crop: Union[str, Interesting]
      :param linear: Reduce in linear light
      :type linear: bool
      :param input_profile: Fallback input profile
      :type input_profile: str
      :param output_profile: Fallback output profile
      :type output_profile: str
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: thumbnail_buffer(buffer, width, option_string=str, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      Generate thumbnail from buffer.
      
      Example:
          out = pyvips.Image.thumbnail_buffer(buffer, width, option_string=str, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param width: Size to this width
      :type width: int
      :param option_string: Options that are passed on to the underlying loader
      :type option_string: str
      :param height: Size to this height
      :type height: int
      :param size: Only upsize, only downsize, or both
      :type size: Union[str, Size]
      :param no_rotate: Don't use orientation tags to rotate image upright
      :type no_rotate: bool
      :param crop: Reduce to fill target rectangle, then crop
      :type crop: Union[str, Interesting]
      :param linear: Reduce in linear light
      :type linear: bool
      :param input_profile: Fallback input profile
      :type input_profile: str
      :param output_profile: Fallback output profile
      :type output_profile: str
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :rtype: Image
      :raises Error:
      
   .. method:: thumbnail_image(width, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      Generate thumbnail from image.
      
      Example:
          out = in.thumbnail_image(width, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      :param width: Size to this width
      :type width: int
      :param height: Size to this height
      :type height: int
      :param size: Only upsize, only downsize, or both
      :type size: Union[str, Size]
      :param no_rotate: Don't use orientation tags to rotate image upright
      :type no_rotate: bool
      :param crop: Reduce to fill target rectangle, then crop
      :type crop: Union[str, Interesting]
      :param linear: Reduce in linear light
      :type linear: bool
      :param input_profile: Fallback input profile
      :type input_profile: str
      :param output_profile: Fallback output profile
      :type output_profile: str
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: thumbnail_source(source, width, option_string=str, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      Generate thumbnail from source.
      
      Example:
          out = pyvips.Image.thumbnail_source(source, width, option_string=str, height=int, size=Union[str, Size], no_rotate=bool, crop=Union[str, Interesting], linear=bool, input_profile=str, output_profile=str, intent=Union[str, Intent], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param width: Size to this width
      :type width: int
      :param option_string: Options that are passed on to the underlying loader
      :type option_string: str
      :param height: Size to this height
      :type height: int
      :param size: Only upsize, only downsize, or both
      :type size: Union[str, Size]
      :param no_rotate: Don't use orientation tags to rotate image upright
      :type no_rotate: bool
      :param crop: Reduce to fill target rectangle, then crop
      :type crop: Union[str, Interesting]
      :param linear: Reduce in linear light
      :type linear: bool
      :param input_profile: Fallback input profile
      :type input_profile: str
      :param output_profile: Fallback output profile
      :type output_profile: str
      :param intent: Rendering intent
      :type intent: Union[str, Intent]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: tiffload(filename, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load tiff from file.
      
      Example:
          out = pyvips.Image.tiffload(filename, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param autorotate: Rotate image using orientation tag
      :type autorotate: bool
      :param subifd: Subifd index
      :type subifd: int
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: tiffload_buffer(buffer, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load tiff from buffer.
      
      Example:
          out = pyvips.Image.tiffload_buffer(buffer, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param autorotate: Rotate image using orientation tag
      :type autorotate: bool
      :param subifd: Subifd index
      :type subifd: int
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: tiffload_source(source, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load tiff from source.
      
      Example:
          out = pyvips.Image.tiffload_source(source, page=int, n=int, autorotate=bool, subifd=int, unlimited=bool, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param autorotate: Rotate image using orientation tag
      :type autorotate: bool
      :param subifd: Subifd index
      :type subifd: int
      :param unlimited: Remove all denial of service limits
      :type unlimited: bool
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: tiffsave(filename, compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to tiff file.
      
      Example:
          in.tiffsave(filename, compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param compression: Compression for this file
      :type compression: Union[str, ForeignTiffCompression]
      :param Q: Q factor
      :type Q: int
      :param predictor: Compression prediction
      :type predictor: Union[str, ForeignTiffPredictor]
      :param tile: Write a tiled tiff
      :type tile: bool
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param pyramid: Write a pyramidal tiff
      :type pyramid: bool
      :param miniswhite: Use 0 for white in 1-bit images
      :type miniswhite: bool
      :param bitdepth: Write as a 1, 2, 4 or 8 bit image
      :type bitdepth: int
      :param resunit: Resolution unit
      :type resunit: Union[str, ForeignTiffResunit]
      :param xres: Horizontal resolution in pixels/mm
      :type xres: float
      :param yres: Vertical resolution in pixels/mm
      :type yres: float
      :param bigtiff: Write a bigtiff image
      :type bigtiff: bool
      :param properties: Write a properties document to IMAGEDESCRIPTION
      :type properties: bool
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param level: Deflate (1-9, default 6) or ZSTD (1-22, default 9) compression level
      :type level: int
      :param lossless: Enable WEBP lossless mode
      :type lossless: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param subifd: Save pyr layers as sub-IFDs
      :type subifd: bool
      :param premultiply: Save with premultiplied alpha
      :type premultiply: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: tiffsave_buffer(compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to tiff buffer.
      
      Example:
          buffer = in.tiffsave_buffer(compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param compression: Compression for this file
      :type compression: Union[str, ForeignTiffCompression]
      :param Q: Q factor
      :type Q: int
      :param predictor: Compression prediction
      :type predictor: Union[str, ForeignTiffPredictor]
      :param tile: Write a tiled tiff
      :type tile: bool
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param pyramid: Write a pyramidal tiff
      :type pyramid: bool
      :param miniswhite: Use 0 for white in 1-bit images
      :type miniswhite: bool
      :param bitdepth: Write as a 1, 2, 4 or 8 bit image
      :type bitdepth: int
      :param resunit: Resolution unit
      :type resunit: Union[str, ForeignTiffResunit]
      :param xres: Horizontal resolution in pixels/mm
      :type xres: float
      :param yres: Vertical resolution in pixels/mm
      :type yres: float
      :param bigtiff: Write a bigtiff image
      :type bigtiff: bool
      :param properties: Write a properties document to IMAGEDESCRIPTION
      :type properties: bool
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param level: Deflate (1-9, default 6) or ZSTD (1-22, default 9) compression level
      :type level: int
      :param lossless: Enable WEBP lossless mode
      :type lossless: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param subifd: Save pyr layers as sub-IFDs
      :type subifd: bool
      :param premultiply: Save with premultiplied alpha
      :type premultiply: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: tiffsave_target(target, compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to tiff target.
      
      Example:
          in.tiffsave_target(target, compression=Union[str, ForeignTiffCompression], Q=int, predictor=Union[str, ForeignTiffPredictor], tile=bool, tile_width=int, tile_height=int, pyramid=bool, miniswhite=bool, bitdepth=int, resunit=Union[str, ForeignTiffResunit], xres=float, yres=float, bigtiff=bool, properties=bool, region_shrink=Union[str, RegionShrink], level=int, lossless=bool, depth=Union[str, ForeignDzDepth], subifd=bool, premultiply=bool, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param compression: Compression for this file
      :type compression: Union[str, ForeignTiffCompression]
      :param Q: Q factor
      :type Q: int
      :param predictor: Compression prediction
      :type predictor: Union[str, ForeignTiffPredictor]
      :param tile: Write a tiled tiff
      :type tile: bool
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param pyramid: Write a pyramidal tiff
      :type pyramid: bool
      :param miniswhite: Use 0 for white in 1-bit images
      :type miniswhite: bool
      :param bitdepth: Write as a 1, 2, 4 or 8 bit image
      :type bitdepth: int
      :param resunit: Resolution unit
      :type resunit: Union[str, ForeignTiffResunit]
      :param xres: Horizontal resolution in pixels/mm
      :type xres: float
      :param yres: Vertical resolution in pixels/mm
      :type yres: float
      :param bigtiff: Write a bigtiff image
      :type bigtiff: bool
      :param properties: Write a properties document to IMAGEDESCRIPTION
      :type properties: bool
      :param region_shrink: Method to shrink regions
      :type region_shrink: Union[str, RegionShrink]
      :param level: Deflate (1-9, default 6) or ZSTD (1-22, default 9) compression level
      :type level: int
      :param lossless: Enable WEBP lossless mode
      :type lossless: bool
      :param depth: Pyramid depth
      :type depth: Union[str, ForeignDzDepth]
      :param subifd: Save pyr layers as sub-IFDs
      :type subifd: bool
      :param premultiply: Save with premultiplied alpha
      :type premultiply: bool
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: tilecache(tile_width=int, tile_height=int, max_tiles=int, access=Union[str, Access], threaded=bool, persistent=bool)
      
      Cache an image as a set of tiles.
      
      Example:
          out = in.tilecache(tile_width=int, tile_height=int, max_tiles=int, access=Union[str, Access], threaded=bool, persistent=bool)
      
      :param tile_width: Tile width in pixels
      :type tile_width: int
      :param tile_height: Tile height in pixels
      :type tile_height: int
      :param max_tiles: Maximum number of tiles to cache
      :type max_tiles: int
      :param access: Expected access pattern
      :type access: Union[str, Access]
      :param threaded: Allow threaded access
      :type threaded: bool
      :param persistent: Keep cache between evaluations
      :type persistent: bool
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: tonelut(in_max=int, out_max=int, Lb=float, Lw=float, Ps=float, Pm=float, Ph=float, S=float, M=float, H=float)
      
      Build a look-up table.
      
      Example:
          out = pyvips.Image.tonelut(in_max=int, out_max=int, Lb=float, Lw=float, Ps=float, Pm=float, Ph=float, S=float, M=float, H=float)
      
      :param in_max: Size of LUT to build
      :type in_max: int
      :param out_max: Maximum value in output LUT
      :type out_max: int
      :param Lb: Lowest value in output
      :type Lb: float
      :param Lw: Highest value in output
      :type Lw: float
      :param Ps: Position of shadow
      :type Ps: float
      :param Pm: Position of mid-tones
      :type Pm: float
      :param Ph: Position of highlights
      :type Ph: float
      :param S: Adjust shadows by this much
      :type S: float
      :param M: Adjust mid-tones by this much
      :type M: float
      :param H: Adjust highlights by this much
      :type H: float
      :rtype: Image
      :raises Error:
      
   .. method:: transpose3d(page_height=int)
      
      Transpose3d an image.
      
      Example:
          out = in.transpose3d(page_height=int)
      
      :param page_height: Height of each input page
      :type page_height: int
      :rtype: Image
      :raises Error:
      
   .. method:: uhdr2scRGB()
      
      Transform uhdr to scRGB.
      
      Example:
          out = in.uhdr2scRGB()
      
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: uhdrload(filename, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load a UHDR image.
      
      Example:
          out = pyvips.Image.uhdrload(filename, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param shrink: Shrink factor on load
      :type shrink: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: uhdrload_buffer(buffer, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load a UHDR image.
      
      Example:
          out = pyvips.Image.uhdrload_buffer(buffer, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param shrink: Shrink factor on load
      :type shrink: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: uhdrload_source(source, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load a UHDR image.
      
      Example:
          out = pyvips.Image.uhdrload_source(source, shrink=int, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param shrink: Shrink factor on load
      :type shrink: int
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: uhdrsave(filename, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in UltraHDR format.
      
      Example:
          in.uhdrsave(filename, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: uhdrsave_buffer(Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in UltraHDR format.
      
      Example:
          buffer = in.uhdrsave_buffer(Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: uhdrsave_target(target, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image in UltraHDR format.
      
      Example:
          in.uhdrsave_target(target, Q=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param Q: Q factor
      :type Q: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: unpremultiply(max_alpha=float, alpha_band=int)
      
      Unpremultiply image alpha.
      
      Example:
          out = in.unpremultiply(max_alpha=float, alpha_band=int)
      
      :param max_alpha: Maximum value of alpha channel
      :type max_alpha: float
      :param alpha_band: Unpremultiply with this alpha
      :type alpha_band: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: vipsload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load vips from file.
      
      Example:
          out = pyvips.Image.vipsload(filename, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: vipsload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load vips from source.
      
      Example:
          out = pyvips.Image.vipsload_source(source, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: vipssave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to file in vips format.
      
      Example:
          in.vipssave(filename, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: vipssave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to target in vips format.
      
      Example:
          in.vipssave_target(target, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: webpload(filename, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool, flags=bool)
      
      Load webp from file.
      
      Example:
          out = pyvips.Image.webpload(filename, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], revalidate=bool)
      
      :param filename: Filename to load from
      :type filename: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param scale: Factor to scale by
      :type scale: float
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param revalidate: Don't use a cached result for this operation
      :type revalidate: bool
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: webpload_buffer(buffer, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load webp from buffer.
      
      Example:
          out = pyvips.Image.webpload_buffer(buffer, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param buffer: Buffer to load from
      :type buffer: str
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param scale: Factor to scale by
      :type scale: float
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. staticmethod:: webpload_source(source, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn], flags=bool)
      
      Load webp from source.
      
      Example:
          out = pyvips.Image.webpload_source(source, page=int, n=int, scale=float, memory=bool, access=Union[str, Access], fail_on=Union[str, FailOn])
      
      :param source: Source to load from
      :type source: Source
      :param page: First page to load
      :type page: int
      :param n: Number of pages to load, -1 for all
      :type n: int
      :param scale: Factor to scale by
      :type scale: float
      :param memory: Force open via memory
      :type memory: bool
      :param access: Required access pattern for this file
      :type access: Union[str, Access]
      :param fail_on: Error level to fail on
      :type fail_on: Union[str, FailOn]
      :param flags: enable output: Flags for this file
      :type flags: bool
      :rtype: Image or list[Image, Dict[str, mixed]]
      :raises Error:
      
   .. method:: webpsave(filename, Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as WebP.
      
      Example:
          in.webpsave(filename, Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param filename: Filename to save to
      :type filename: str
      :param Q: Q factor
      :type Q: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param exact: Preserve color values from transparent pixels
      :type exact: bool
      :param preset: Preset for lossy compression
      :type preset: Union[str, ForeignWebpPreset]
      :param smart_subsample: Enable high quality chroma subsampling
      :type smart_subsample: bool
      :param near_lossless: Enable preprocessing in lossless mode (uses Q)
      :type near_lossless: bool
      :param alpha_q: Change alpha plane fidelity for lossy compression
      :type alpha_q: int
      :param min_size: Optimise for minimum size
      :type min_size: bool
      :param kmin: Minimum number of frames between key frames
      :type kmin: int
      :param kmax: Maximum number of frames between key frames
      :type kmax: int
      :param effort: Level of CPU effort to reduce file size
      :type effort: int
      :param target_size: Desired target size in bytes
      :type target_size: int
      :param mixed: Allow mixed encoding (might reduce file size)
      :type mixed: bool
      :param smart_deblock: Enable auto-adjusting of the deblocking filter
      :type smart_deblock: bool
      :param passes: Number of entropy-analysis passes (in [1..10])
      :type passes: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: webpsave_buffer(Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as WebP.
      
      Example:
          buffer = in.webpsave_buffer(Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param exact: Preserve color values from transparent pixels
      :type exact: bool
      :param preset: Preset for lossy compression
      :type preset: Union[str, ForeignWebpPreset]
      :param smart_subsample: Enable high quality chroma subsampling
      :type smart_subsample: bool
      :param near_lossless: Enable preprocessing in lossless mode (uses Q)
      :type near_lossless: bool
      :param alpha_q: Change alpha plane fidelity for lossy compression
      :type alpha_q: int
      :param min_size: Optimise for minimum size
      :type min_size: bool
      :param kmin: Minimum number of frames between key frames
      :type kmin: int
      :param kmax: Maximum number of frames between key frames
      :type kmax: int
      :param effort: Level of CPU effort to reduce file size
      :type effort: int
      :param target_size: Desired target size in bytes
      :type target_size: int
      :param mixed: Allow mixed encoding (might reduce file size)
      :type mixed: bool
      :param smart_deblock: Enable auto-adjusting of the deblocking filter
      :type smart_deblock: bool
      :param passes: Number of entropy-analysis passes (in [1..10])
      :type passes: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: str
      :raises Error:
      
   .. method:: webpsave_mime(Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save image to webp mime.
      
      Example:
          in.webpsave_mime(Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param Q: Q factor
      :type Q: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param exact: Preserve color values from transparent pixels
      :type exact: bool
      :param preset: Preset for lossy compression
      :type preset: Union[str, ForeignWebpPreset]
      :param smart_subsample: Enable high quality chroma subsampling
      :type smart_subsample: bool
      :param near_lossless: Enable preprocessing in lossless mode (uses Q)
      :type near_lossless: bool
      :param alpha_q: Change alpha plane fidelity for lossy compression
      :type alpha_q: int
      :param min_size: Optimise for minimum size
      :type min_size: bool
      :param kmin: Minimum number of frames between key frames
      :type kmin: int
      :param kmax: Maximum number of frames between key frames
      :type kmax: int
      :param effort: Level of CPU effort to reduce file size
      :type effort: int
      :param target_size: Desired target size in bytes
      :type target_size: int
      :param mixed: Allow mixed encoding (might reduce file size)
      :type mixed: bool
      :param smart_deblock: Enable auto-adjusting of the deblocking filter
      :type smart_deblock: bool
      :param passes: Number of entropy-analysis passes (in [1..10])
      :type passes: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. method:: webpsave_target(target, Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      Save as WebP.
      
      Example:
          in.webpsave_target(target, Q=int, lossless=bool, exact=bool, preset=Union[str, ForeignWebpPreset], smart_subsample=bool, near_lossless=bool, alpha_q=int, min_size=bool, kmin=int, kmax=int, effort=int, target_size=int, mixed=bool, smart_deblock=bool, passes=int, keep=int, background=list[float], page_height=int, profile=str)
      
      :param target: Target to save to
      :type target: Target
      :param Q: Q factor
      :type Q: int
      :param lossless: Enable lossless compression
      :type lossless: bool
      :param exact: Preserve color values from transparent pixels
      :type exact: bool
      :param preset: Preset for lossy compression
      :type preset: Union[str, ForeignWebpPreset]
      :param smart_subsample: Enable high quality chroma subsampling
      :type smart_subsample: bool
      :param near_lossless: Enable preprocessing in lossless mode (uses Q)
      :type near_lossless: bool
      :param alpha_q: Change alpha plane fidelity for lossy compression
      :type alpha_q: int
      :param min_size: Optimise for minimum size
      :type min_size: bool
      :param kmin: Minimum number of frames between key frames
      :type kmin: int
      :param kmax: Maximum number of frames between key frames
      :type kmax: int
      :param effort: Level of CPU effort to reduce file size
      :type effort: int
      :param target_size: Desired target size in bytes
      :type target_size: int
      :param mixed: Allow mixed encoding (might reduce file size)
      :type mixed: bool
      :param smart_deblock: Enable auto-adjusting of the deblocking filter
      :type smart_deblock: bool
      :param passes: Number of entropy-analysis passes (in [1..10])
      :type passes: int
      :param keep: Which metadata to retain
      :type keep: int
      :param background: Background value
      :type background: list[float]
      :param page_height: Set page height for multipage save
      :type page_height: int
      :param profile: Filename of ICC profile to embed
      :type profile: str
      :rtype: list[]
      :raises Error:
      
   .. staticmethod:: worley(width, height, cell_size=int, seed=int)
      
      Make a worley noise image.
      
      Example:
          out = pyvips.Image.worley(width, height, cell_size=int, seed=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param cell_size: Size of Worley cells
      :type cell_size: int
      :param seed: Random number seed
      :type seed: int
      :rtype: Image
      :raises Error:
      
   .. method:: wrap(x=int, y=int)
      
      Wrap image origin.
      
      Example:
          out = in.wrap(x=int, y=int)
      
      :param x: Left edge of input in output
      :type x: int
      :param y: Top edge of input in output
      :type y: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: xyz(width, height, csize=int, dsize=int, esize=int)
      
      Make an image where pixel values are coordinates.
      
      Example:
          out = pyvips.Image.xyz(width, height, csize=int, dsize=int, esize=int)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param csize: Size of third dimension
      :type csize: int
      :param dsize: Size of fourth dimension
      :type dsize: int
      :param esize: Size of fifth dimension
      :type esize: int
      :rtype: Image
      :raises Error:
      
   .. staticmethod:: zone(width, height, uchar=bool)
      
      Make a zone plate.
      
      Example:
          out = pyvips.Image.zone(width, height, uchar=bool)
      
      :param width: Image width in pixels
      :type width: int
      :param height: Image height in pixels
      :type height: int
      :param uchar: Output an unsigned char image
      :type uchar: bool
      :rtype: Image
      :raises Error:
      
   .. method:: zoom(xfac, yfac)
      
      Zoom an image.
      
      Example:
          out = input.zoom(xfac, yfac)
      
      :param xfac: Horizontal zoom factor
      :type xfac: int
      :param yfac: Vertical zoom factor
      :type yfac: int
      :rtype: Image
      :raises Error:
      
