lib/vips/methods.rb in ruby-vips-2.1.4 vs lib/vips/methods.rb in ruby-vips-2.2.0
- old
+ new
@@ -37,11 +37,11 @@
# @return [Vips::Image] Output image
# @!method relational(right, relational, **opts)
# Relational operation on two images.
# @param right [Vips::Image] Right-hand image argument
-# @param relational [Vips::OperationRelational] relational to perform
+# @param relational [Vips::OperationRelational] Relational to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method remainder(right, **opts)
# Remainder after integer division of two images.
@@ -50,25 +50,25 @@
# @return [Vips::Image] Output image
# @!method boolean(right, boolean, **opts)
# Boolean operation on two images.
# @param right [Vips::Image] Right-hand image argument
-# @param boolean [Vips::OperationBoolean] boolean to perform
+# @param boolean [Vips::OperationBoolean] Boolean to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method math2(right, math2, **opts)
# Binary math operations.
# @param right [Vips::Image] Right-hand image argument
-# @param math2 [Vips::OperationMath2] math to perform
+# @param math2 [Vips::OperationMath2] Math to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method complex2(right, cmplx, **opts)
# Complex binary operations on two images.
# @param right [Vips::Image] Right-hand image argument
-# @param cmplx [Vips::OperationComplex2] binary complex operation to perform
+# @param cmplx [Vips::OperationComplex2] Binary complex operation to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method complexform(right, **opts)
# Form a complex image from two real images.
@@ -95,11 +95,11 @@
# @option opts [Boolean] :uchar Output should be uchar
# @return [Vips::Image] Output image
# @!method math(math, **opts)
# Apply a math operation to an image.
-# @param math [Vips::OperationMath] math to perform
+# @param math [Vips::OperationMath] Math to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method abs(**opts)
# Absolute value of an image.
@@ -111,17 +111,17 @@
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method round(round, **opts)
# Perform a round function on an image.
-# @param round [Vips::OperationRound] rounding operation to perform
+# @param round [Vips::OperationRound] Rounding operation to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method relational_const(relational, c, **opts)
# Relational operations against a constant.
-# @param relational [Vips::OperationRelational] relational to perform
+# @param relational [Vips::OperationRelational] Relational to perform
# @param c [Array<Double>] Array of constants
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method remainder_const(c, **opts)
@@ -130,31 +130,31 @@
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method boolean_const(boolean, c, **opts)
# Boolean operations against a constant.
-# @param boolean [Vips::OperationBoolean] boolean to perform
+# @param boolean [Vips::OperationBoolean] Boolean to perform
# @param c [Array<Double>] Array of constants
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method math2_const(math2, c, **opts)
# Binary math operations with a constant.
-# @param math2 [Vips::OperationMath2] math to perform
+# @param math2 [Vips::OperationMath2] Math to perform
# @param c [Array<Double>] Array of constants
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method complex(cmplx, **opts)
# Perform a complex operation on an image.
-# @param cmplx [Vips::OperationComplex] complex to perform
+# @param cmplx [Vips::OperationComplex] Complex to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method complexget(get, **opts)
# Get a component from a complex image.
-# @param get [Vips::OperationComplexget] complex to perform
+# @param get [Vips::OperationComplexget] Complex to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method avg(**opts)
# Find image average.
@@ -213,11 +213,11 @@
# @return [Vips::Image] Output histogram
# @!method hough_line(**opts)
# Find hough line transform.
# @param opts [Hash] Set of options
-# @option opts [Integer] :width horizontal size of parameter space
+# @option opts [Integer] :width Horizontal size of parameter space
# @option opts [Integer] :height Vertical size of parameter space
# @return [Vips::Image] Output image
# @!method hough_circle(**opts)
# Find hough circle transform.
@@ -258,10 +258,11 @@
# @!method find_trim(**opts)
# Search an image for non-edge areas.
# @param opts [Hash] Set of options
# @option opts [Float] :threshold Object threshold
# @option opts [Array<Double>] :background Color for background pixels
+# @option opts [Boolean] :line_art Enable line art mode
# @return [Array<Integer, Integer, Integer, Integer>] Left edge of image, Top edge of extract area, Width of extract area, Height of extract area
# @!method copy(**opts)
# Copy an image.
# @param opts [Hash] Set of options
@@ -322,11 +323,11 @@
# @option opts [Array<Double>] :background Color for background pixels
# @return [Vips::Image] Output image
# @!method gravity(direction, width, height, **opts)
# Place an image within a larger image with a certain gravity.
-# @param direction [Vips::CompassDirection] direction to place image within width/height
+# @param direction [Vips::CompassDirection] Direction to place image within width/height
# @param width [Integer] Image width in pixels
# @param height [Integer] Image height in pixels
# @param opts [Hash] Set of options
# @option opts [Vips::Extend] :extend How to generate the extra pixels
# @option opts [Array<Double>] :background Color for background pixels
@@ -394,11 +395,14 @@
# Extract an area from an image.
# @param width [Integer] Width of extract area
# @param height [Integer] Height of extract area
# @param opts [Hash] Set of options
# @option opts [Vips::Interesting] :interesting How to measure interestingness
-# @return [Vips::Image] Output image
+# @option opts [Boolean] :premultiplied Input image already has premultiplied alpha
+# @option opts [Integer] :attention_x Output Horizontal position of attention centre
+# @option opts [Integer] :attention_y Output Vertical position of attention centre
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method extract_band(band, **opts)
# Extract band from an image.
# @param band [Integer] Band to extract
# @param opts [Hash] Set of options
@@ -423,11 +427,11 @@
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method bandbool(boolean, **opts)
# Boolean operation across image bands.
-# @param boolean [Vips::OperationBoolean] boolean to perform
+# @param boolean [Vips::OperationBoolean] Boolean to perform
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method replicate(across, down, **opts)
# Replicate an image.
@@ -462,11 +466,11 @@
# @option opts [Boolean] :flip Output Whether the image was flipped or not
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method recomb(m, **opts)
# Linear recombination with matrix.
-# @param m [Vips::Image] matrix of coefficients
+# @param m [Vips::Image] Matrix of coefficients
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method bandfold(**opts)
# Fold up x axis into bands.
@@ -500,13 +504,13 @@
# @option opts [Integer] :alpha_band Unpremultiply with this alpha
# @return [Vips::Image] Output image
# @!method grid(tile_height, across, down, **opts)
# Grid an image.
-# @param tile_height [Integer] chop into tiles this high
-# @param across [Integer] number of tiles across
-# @param down [Integer] number of tiles down
+# @param tile_height [Integer] Chop into tiles this high
+# @param across [Integer] Number of tiles across
+# @param down [Integer] Number of tiles down
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
# @!method transpose3d(**opts)
# Transpose3d an image.
@@ -606,14 +610,14 @@
# @option opts [Vips::Precision] :precision Generate with this precision
# @return [Vips::Image] Output image
# @!method self.logmat(sigma, min_ampl, **opts)
# Make a laplacian of gaussian image.
-# @param sigma [Float] Radius of Logmatian
-# @param min_ampl [Float] Minimum amplitude of Logmatian
+# @param sigma [Float] Radius of Gaussian
+# @param min_ampl [Float] Minimum amplitude of Gaussian
# @param opts [Hash] Set of options
-# @option opts [Boolean] :separable Generate separable Logmatian
+# @option opts [Boolean] :separable Generate separable Gaussian
# @option opts [Vips::Precision] :precision Generate with this precision
# @return [Vips::Image] Output image
# @!method self.text(text, **opts)
# Make a text image.
@@ -621,15 +625,16 @@
# @param opts [Hash] Set of options
# @option opts [String] :font Font to render with
# @option opts [Integer] :width Maximum image width in pixels
# @option opts [Integer] :height Maximum image height in pixels
# @option opts [Vips::Align] :align Align on the low, centre or high edge
-# @option opts [Boolean] :rgba Enable RGBA output
-# @option opts [Integer] :dpi DPI to render at
# @option opts [Boolean] :justify Justify lines
+# @option opts [Integer] :dpi DPI to render at
# @option opts [Integer] :spacing Line spacing
# @option opts [String] :fontfile Load this font file
+# @option opts [Boolean] :rgba Enable RGBA output
+# @option opts [Vips::TextWrap] :wrap Wrap lines on word or character boundaries
# @option opts [Integer] :autofit_dpi Output DPI selected by autofit
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.eye(width, height, **opts)
# Make an image showing the eye's spatial response.
@@ -695,11 +700,11 @@
# Make an ideal band filter.
# @param width [Integer] Image width in pixels
# @param height [Integer] Image height in pixels
# @param frequency_cutoff_x [Float] Frequency cutoff x
# @param frequency_cutoff_y [Float] Frequency cutoff y
-# @param radius [Float] radius of circle
+# @param radius [Float] Radius of circle
# @param opts [Hash] Set of options
# @option opts [Boolean] :uchar Output an unsigned char image
# @option opts [Boolean] :nodc Remove DC component
# @option opts [Boolean] :reject Invert the sense of the filter
# @option opts [Boolean] :optical Rotate quadrants to optical space
@@ -739,11 +744,11 @@
# @param width [Integer] Image width in pixels
# @param height [Integer] Image height in pixels
# @param order [Float] Filter order
# @param frequency_cutoff_x [Float] Frequency cutoff x
# @param frequency_cutoff_y [Float] Frequency cutoff y
-# @param radius [Float] radius of circle
+# @param radius [Float] Radius of circle
# @param amplitude_cutoff [Float] Amplitude cutoff
# @param opts [Hash] Set of options
# @option opts [Boolean] :uchar Output an unsigned char image
# @option opts [Boolean] :nodc Remove DC component
# @option opts [Boolean] :reject Invert the sense of the filter
@@ -781,11 +786,11 @@
# Make a gaussian filter.
# @param width [Integer] Image width in pixels
# @param height [Integer] Image height in pixels
# @param frequency_cutoff_x [Float] Frequency cutoff x
# @param frequency_cutoff_y [Float] Frequency cutoff y
-# @param radius [Float] radius of circle
+# @param radius [Float] Radius of circle
# @param amplitude_cutoff [Float] Amplitude cutoff
# @param opts [Hash] Set of options
# @option opts [Boolean] :uchar Output an unsigned char image
# @option opts [Boolean] :nodc Remove DC component
# @option opts [Boolean] :reject Invert the sense of the filter
@@ -880,10 +885,11 @@
# @option opts [String] :whitespace Set of whitespace characters
# @option opts [String] :separator Set of separator characters
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.csvload_source(source, **opts)
# Load csv.
@@ -894,30 +900,33 @@
# @option opts [String] :whitespace Set of whitespace characters
# @option opts [String] :separator Set of separator characters
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.matrixload(filename, **opts)
# Load matrix.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.matrixload_source(source, **opts)
# Load matrix.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.rawload(filename, width, height, bands, **opts)
# Load raw data from a file.
@@ -930,148 +939,113 @@
# @option opts [Vips::BandFormat] :format Pixel format in image
# @option opts [Vips::Interpretation] :interpretation Pixel interpretation
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.vipsload(filename, **opts)
# Load vips from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.vipsload_source(source, **opts)
# Load vips from source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.analyzeload(filename, **opts)
# Load an analyze6 image.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.ppmload(filename, **opts)
# Load ppm from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.ppmload_source(source, **opts)
# Load ppm base class.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.radload(filename, **opts)
# Load a radiance image from a file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.radload_buffer(buffer, **opts)
# Load rad from buffer.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.radload_source(source, **opts)
# Load rad from source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.pdfload(filename, **opts)
-# Load pdf from file.
-# @param filename [String] Filename to load from
-# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :dpi Render at this DPI
-# @option opts [Float] :scale Scale output by this factor
-# @option opts [Array<Double>] :background Background value
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
-# @!method self.pdfload_buffer(buffer, **opts)
-# Load pdf from buffer.
-# @param buffer [VipsBlob] Buffer to load from
-# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :dpi Render at this DPI
-# @option opts [Float] :scale Scale output by this factor
-# @option opts [Array<Double>] :background Background value
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
-# @!method self.pdfload_source(source, **opts)
-# Load pdf from source.
-# @param source [Vips::Source] Source to load from
-# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :dpi Render at this DPI
-# @option opts [Float] :scale Scale output by this factor
-# @option opts [Array<Double>] :background Background value
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
# @!method self.svgload(filename, **opts)
# Load svg with rsvg.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Float] :dpi Render at this DPI
# @option opts [Float] :scale Scale output by this factor
# @option opts [Boolean] :unlimited Allow SVG of any size
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.svgload_buffer(buffer, **opts)
# Load svg with rsvg.
@@ -1081,10 +1055,11 @@
# @option opts [Float] :scale Scale output by this factor
# @option opts [Boolean] :unlimited Allow SVG of any size
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.svgload_source(source, **opts)
# Load svg from source.
@@ -1094,51 +1069,23 @@
# @option opts [Float] :scale Scale output by this factor
# @option opts [Boolean] :unlimited Allow SVG of any size
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.jxlload(filename, **opts)
-# Load jpeg-xl image.
-# @param filename [String] Filename to load from
-# @param opts [Hash] Set of options
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
-# @!method self.jxlload_buffer(buffer, **opts)
-# Load jpeg-xl image.
-# @param buffer [VipsBlob] Buffer to load from
-# @param opts [Hash] Set of options
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
-# @!method self.jxlload_source(source, **opts)
-# Load jpeg-xl image.
-# @param source [Vips::Source] Source to load from
-# @param opts [Hash] Set of options
-# @option opts [Boolean] :memory Force open via memory
-# @option opts [Vips::Access] :access Required access pattern for this file
-# @option opts [Vips::FailOn] :fail_on Error level to fail on
-# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
-# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-
# @!method self.jp2kload(filename, **opts)
# Load jpeg2000 image.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Integer] :page Load this page from the image
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.jp2kload_buffer(buffer, **opts)
# Load jpeg2000 image.
@@ -1146,10 +1093,11 @@
# @param opts [Hash] Set of options
# @option opts [Integer] :page Load this page from the image
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.jp2kload_source(source, **opts)
# Load jpeg2000 image.
@@ -1157,46 +1105,50 @@
# @param opts [Hash] Set of options
# @option opts [Integer] :page Load this page from the image
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.gifload(filename, **opts)
# Load gif with libnsgif.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :n Load this many pages
-# @option opts [Integer] :page Load this page from the file
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Integer] :page First page to load
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.gifload_buffer(buffer, **opts)
# Load gif with libnsgif.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :n Load this many pages
-# @option opts [Integer] :page Load this page from the file
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Integer] :page First page to load
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.gifload_source(source, **opts)
# Load gif from source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :n Load this many pages
-# @option opts [Integer] :page Load this page from the file
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Integer] :page First page to load
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.pngload(filename, **opts)
# Load png from file.
@@ -1204,10 +1156,11 @@
# @param opts [Hash] Set of options
# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.pngload_buffer(buffer, **opts)
# Load png from buffer.
@@ -1215,10 +1168,11 @@
# @param opts [Hash] Set of options
# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.pngload_source(source, **opts)
# Load png from source.
@@ -1226,775 +1180,928 @@
# @param opts [Hash] Set of options
# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.matload(filename, **opts)
# Load mat from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.jpegload(filename, **opts)
# Load jpeg from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Integer] :shrink Shrink factor on load
# @option opts [Boolean] :autorotate Rotate image using exif orientation
+# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.jpegload_buffer(buffer, **opts)
# Load jpeg from buffer.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
# @option opts [Integer] :shrink Shrink factor on load
# @option opts [Boolean] :autorotate Rotate image using exif orientation
+# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.jpegload_source(source, **opts)
# Load image from jpeg source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Integer] :shrink Shrink factor on load
# @option opts [Boolean] :autorotate Rotate image using exif orientation
+# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.webpload(filename, **opts)
# Load webp from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :scale Scale factor on load
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :scale Factor to scale by
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.webpload_buffer(buffer, **opts)
# Load webp from buffer.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :scale Scale factor on load
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :scale Factor to scale by
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.webpload_source(source, **opts)
# Load webp from source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Float] :scale Scale factor on load
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :scale Factor to scale by
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.tiffload(filename, **opts)
# Load tiff from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the image
-# @option opts [Integer] :subifd Select subifd index
-# @option opts [Integer] :n Load this many pages
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :subifd Subifd index
+# @option opts [Integer] :n Number of pages to load, -1 for all
# @option opts [Boolean] :autorotate Rotate image using orientation tag
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.tiffload_buffer(buffer, **opts)
# Load tiff from buffer.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the image
-# @option opts [Integer] :subifd Select subifd index
-# @option opts [Integer] :n Load this many pages
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :subifd Subifd index
+# @option opts [Integer] :n Number of pages to load, -1 for all
# @option opts [Boolean] :autorotate Rotate image using orientation tag
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.tiffload_source(source, **opts)
# Load tiff from source.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the image
-# @option opts [Integer] :subifd Select subifd index
-# @option opts [Integer] :n Load this many pages
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :subifd Subifd index
+# @option opts [Integer] :n Number of pages to load, -1 for all
# @option opts [Boolean] :autorotate Rotate image using orientation tag
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+# @!method self.fitsload(filename, **opts)
+# Load a fits image.
+# @param filename [String] Filename to load from
+# @param opts [Hash] Set of options
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
+# @!method self.fitsload_source(source, **opts)
+# Load fits from a source.
+# @param source [Vips::Source] Source to load from
+# @param opts [Hash] Set of options
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
+# @!method self.openexrload(filename, **opts)
+# Load an openexr image.
+# @param filename [String] Filename to load from
+# @param opts [Hash] Set of options
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
+# @!method self.niftiload(filename, **opts)
+# Load nifti volume.
+# @param filename [String] Filename to load from
+# @param opts [Hash] Set of options
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
+# @!method self.niftiload_source(source, **opts)
+# Load nifti volumes.
+# @param source [Vips::Source] Source to load from
+# @param opts [Hash] Set of options
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
# @!method self.openslideload(filename, **opts)
# Load file with openslide.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [Boolean] :attach_associated Attach all associated images
# @option opts [Integer] :level Load this level from the file
# @option opts [Boolean] :autocrop Crop to image bounds
# @option opts [String] :associated Load this associated image
+# @option opts [Boolean] :attach_associated Attach all associated images
+# @option opts [Boolean] :rgb Output RGB (not RGBA)
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method self.openslideload_source(source, **opts)
# Load source with openslide.
# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
-# @option opts [Boolean] :attach_associated Attach all associated images
# @option opts [Integer] :level Load this level from the file
# @option opts [Boolean] :autocrop Crop to image bounds
# @option opts [String] :associated Load this associated image
+# @option opts [Boolean] :attach_associated Attach all associated images
+# @option opts [Boolean] :rgb Output RGB (not RGBA)
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.magickload(filename, **opts)
-# Load file with imagemagick.
+# @!method self.heifload(filename, **opts)
+# Load a heif image.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [String] :density Canvas resolution for rendering vector formats like SVG
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.magickload_buffer(buffer, **opts)
-# Load buffer with imagemagick.
+# @!method self.heifload_buffer(buffer, **opts)
+# Load a heif image.
# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
-# @option opts [String] :density Canvas resolution for rendering vector formats like SVG
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [Boolean] :unlimited Remove all denial of service limits
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.fitsload(filename, **opts)
-# Load a fits image.
+# @!method self.heifload_source(source, **opts)
+# Load a heif image.
+# @param source [Vips::Source] Source to load from
+# @param opts [Hash] Set of options
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [Boolean] :unlimited Remove all denial of service limits
+# @option opts [Boolean] :memory Force open via memory
+# @option opts [Vips::Access] :access Required access pattern for this file
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
+# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
+# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
+
+# @!method self.jxlload(filename, **opts)
+# Load jpeg-xl image.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.fitsload_source(source, **opts)
-# Load fits from a source.
-# @param source [Vips::Source] Source to load from
+# @!method self.jxlload_buffer(buffer, **opts)
+# Load jpeg-xl image.
+# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.openexrload(filename, **opts)
-# Load an openexr image.
-# @param filename [String] Filename to load from
+# @!method self.jxlload_source(source, **opts)
+# Load jpeg-xl image.
+# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.niftiload(filename, **opts)
-# Load nifti volume.
+# @!method self.pdfload(filename, **opts)
+# Load pdf from file.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :dpi DPI to render at
+# @option opts [Float] :scale Factor to scale by
+# @option opts [Array<Double>] :background Background colour
+# @option opts [String] :password Password to decrypt with
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.niftiload_source(source, **opts)
-# Load nifti volumes.
-# @param source [Vips::Source] Source to load from
+# @!method self.pdfload_buffer(buffer, **opts)
+# Load pdf from buffer.
+# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :dpi DPI to render at
+# @option opts [Float] :scale Factor to scale by
+# @option opts [Array<Double>] :background Background colour
+# @option opts [String] :password Password to decrypt with
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.heifload(filename, **opts)
-# Load a heif image.
-# @param filename [String] Filename to load from
+# @!method self.pdfload_source(source, **opts)
+# Load pdf from source.
+# @param source [Vips::Source] Source to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
+# @option opts [Float] :dpi DPI to render at
+# @option opts [Float] :scale Factor to scale by
+# @option opts [Array<Double>] :background Background colour
+# @option opts [String] :password Password to decrypt with
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.heifload_buffer(buffer, **opts)
-# Load a heif image.
-# @param buffer [VipsBlob] Buffer to load from
+# @!method self.magickload(filename, **opts)
+# Load file with imagemagick.
+# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [String] :density Canvas resolution for rendering vector formats like SVG
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
-# @!method self.heifload_source(source, **opts)
-# Load a heif image.
-# @param source [Vips::Source] Source to load from
+# @!method self.magickload_buffer(buffer, **opts)
+# Load buffer with imagemagick.
+# @param buffer [VipsBlob] Buffer to load from
# @param opts [Hash] Set of options
-# @option opts [Integer] :page Load this page from the file
-# @option opts [Integer] :n Load this many pages
-# @option opts [Boolean] :thumbnail Fetch thumbnail image
+# @option opts [String] :density Canvas resolution for rendering vector formats like SVG
+# @option opts [Integer] :page First page to load
+# @option opts [Integer] :n Number of pages to load, -1 for all
# @option opts [Boolean] :memory Force open via memory
# @option opts [Vips::Access] :access Required access pattern for this file
# @option opts [Vips::FailOn] :fail_on Error level to fail on
+# @option opts [Boolean] :revalidate Don't use a cached result for this operation
# @option opts [Vips::ForeignFlags] :flags Output Flags for this file
# @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
# @!method csvsave(filename, **opts)
# Save image to csv.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [String] :separator Separator characters
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method csvsave_target(target, **opts)
# Save image to csv.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [String] :separator Separator characters
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method matrixsave(filename, **opts)
# Save image to matrix.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method matrixsave_target(target, **opts)
# Save image to matrix.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method matrixprint(**opts)
# Print matrix.
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method rawsave(filename, **opts)
# Save image to raw file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method rawsave_fd(fd, **opts)
# Write raw image to file descriptor.
# @param fd [Integer] File descriptor to write to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method vipssave(filename, **opts)
# Save image to file in vips format.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method vipssave_target(target, **opts)
# Save image to target in vips format.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method ppmsave(filename, **opts)
# Save image to ppm file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Vips::ForeignPpmFormat] :format Format to save in
-# @option opts [Boolean] :ascii save as ascii
-# @option opts [Integer] :bitdepth set to 1 to write as a 1 bit image
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Boolean] :ascii Save as ascii
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :bitdepth Set to 1 to write as a 1 bit image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method ppmsave_target(target, **opts)
# Save to ppm.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Vips::ForeignPpmFormat] :format Format to save in
-# @option opts [Boolean] :ascii save as ascii
-# @option opts [Integer] :bitdepth set to 1 to write as a 1 bit image
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Boolean] :ascii Save as ascii
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :bitdepth Set to 1 to write as a 1 bit image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method radsave(filename, **opts)
# Save image to radiance file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method radsave_buffer(**opts)
# Save image to radiance buffer.
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method radsave_target(target, **opts)
# Save image to radiance target.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
-# @!method jxlsave(filename, **opts)
-# Save image in jpeg-xl format.
-# @param filename [String] Filename to load from
-# @param opts [Hash] Set of options
-# @option opts [Integer] :tier Decode speed tier
-# @option opts [Float] :distance Target butteraugli distance
-# @option opts [Integer] :effort Encoding effort
-# @option opts [Boolean] :lossless Enable lossless compression
-# @option opts [Integer] :Q Quality factor
-# @option opts [Boolean] :strip Strip all metadata from image
-# @option opts [Array<Double>] :background Background value
-# @option opts [Integer] :page_height Set page height for multipage save
-# @return [nil]
-
-# @!method jxlsave_buffer(**opts)
-# Save image in jpeg-xl format.
-# @param opts [Hash] Set of options
-# @option opts [Integer] :tier Decode speed tier
-# @option opts [Float] :distance Target butteraugli distance
-# @option opts [Integer] :effort Encoding effort
-# @option opts [Boolean] :lossless Enable lossless compression
-# @option opts [Integer] :Q Quality factor
-# @option opts [Boolean] :strip Strip all metadata from image
-# @option opts [Array<Double>] :background Background value
-# @option opts [Integer] :page_height Set page height for multipage save
-# @return [VipsBlob] Buffer to save to
-
-# @!method jxlsave_target(target, **opts)
-# Save image in jpeg-xl format.
-# @param target [Vips::Target] Target to save to
-# @param opts [Hash] Set of options
-# @option opts [Integer] :tier Decode speed tier
-# @option opts [Float] :distance Target butteraugli distance
-# @option opts [Integer] :effort Encoding effort
-# @option opts [Boolean] :lossless Enable lossless compression
-# @option opts [Integer] :Q Quality factor
-# @option opts [Boolean] :strip Strip all metadata from image
-# @option opts [Array<Double>] :background Background value
-# @option opts [Integer] :page_height Set page height for multipage save
-# @return [nil]
-
# @!method jp2ksave(filename, **opts)
# Save image in jpeg2000 format.
# @param filename [String] Filename to load from
# @param opts [Hash] Set of options
# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :tile_height Tile height in pixels
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Integer] :Q Q factor
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method jp2ksave_buffer(**opts)
# Save image in jpeg2000 format.
# @param opts [Hash] Set of options
# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :tile_height Tile height in pixels
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Integer] :Q Q factor
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method jp2ksave_target(target, **opts)
# Save image in jpeg2000 format.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :tile_height Tile height in pixels
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Integer] :Q Q factor
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method gifsave(filename, **opts)
# Save as gif.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Float] :dither Amount of dithering
# @option opts [Integer] :effort Quantisation effort
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :bitdepth Number of bits per pixel
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Float] :interframe_maxerror Maximum inter-frame error for transparency
+# @option opts [Boolean] :reuse Reuse palette from input
+# @option opts [Float] :interpalette_maxerror Maximum inter-palette error for palette reusage
+# @option opts [Boolean] :interlace Generate an interlaced (progressive) GIF
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method gifsave_buffer(**opts)
# Save as gif.
# @param opts [Hash] Set of options
# @option opts [Float] :dither Amount of dithering
# @option opts [Integer] :effort Quantisation effort
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :bitdepth Number of bits per pixel
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Float] :interframe_maxerror Maximum inter-frame error for transparency
+# @option opts [Boolean] :reuse Reuse palette from input
+# @option opts [Float] :interpalette_maxerror Maximum inter-palette error for palette reusage
+# @option opts [Boolean] :interlace Generate an interlaced (progressive) GIF
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method gifsave_target(target, **opts)
# Save as gif.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Float] :dither Amount of dithering
# @option opts [Integer] :effort Quantisation effort
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :bitdepth Number of bits per pixel
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Float] :interframe_maxerror Maximum inter-frame error for transparency
+# @option opts [Boolean] :reuse Reuse palette from input
+# @option opts [Float] :interpalette_maxerror Maximum inter-palette error for palette reusage
+# @option opts [Boolean] :interlace Generate an interlaced (progressive) GIF
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method dzsave(filename, **opts)
# Save image to deepzoom file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [String] :basename Base name to save to
+# @option opts [String] :imagename Image name
# @option opts [Vips::ForeignDzLayout] :layout Directory layout
# @option opts [String] :suffix Filename suffix for tiles
# @option opts [Integer] :overlap Tile overlap in pixels
# @option opts [Integer] :tile_size Tile size in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :centre Center image in tile
# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
# @option opts [Vips::Angle] :angle Rotate image during save
# @option opts [Vips::ForeignDzContainer] :container Pyramid container type
-# @option opts [Boolean] :properties Write a properties file to the output directory
# @option opts [Integer] :compression ZIP deflate compression level
# @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
# @option opts [Integer] :skip_blanks Skip tiles which are nearly equal to the background
-# @option opts [Boolean] :no_strip Don't strip tile metadata
# @option opts [String] :id Resource ID
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Integer] :Q Q factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method dzsave_buffer(**opts)
# Save image to dz buffer.
# @param opts [Hash] Set of options
-# @option opts [String] :basename Base name to save to
+# @option opts [String] :imagename Image name
# @option opts [Vips::ForeignDzLayout] :layout Directory layout
# @option opts [String] :suffix Filename suffix for tiles
# @option opts [Integer] :overlap Tile overlap in pixels
# @option opts [Integer] :tile_size Tile size in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :centre Center image in tile
# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
# @option opts [Vips::Angle] :angle Rotate image during save
# @option opts [Vips::ForeignDzContainer] :container Pyramid container type
-# @option opts [Boolean] :properties Write a properties file to the output directory
# @option opts [Integer] :compression ZIP deflate compression level
# @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
# @option opts [Integer] :skip_blanks Skip tiles which are nearly equal to the background
-# @option opts [Boolean] :no_strip Don't strip tile metadata
# @option opts [String] :id Resource ID
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Integer] :Q Q factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
+# @!method dzsave_target(target, **opts)
+# Save image to deepzoom target.
+# @param target [Vips::Target] Target to save to
+# @param opts [Hash] Set of options
+# @option opts [String] :imagename Image name
+# @option opts [Vips::ForeignDzLayout] :layout Directory layout
+# @option opts [String] :suffix Filename suffix for tiles
+# @option opts [Integer] :overlap Tile overlap in pixels
+# @option opts [Integer] :tile_size Tile size in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Boolean] :centre Center image in tile
+# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
+# @option opts [Vips::Angle] :angle Rotate image during save
+# @option opts [Vips::ForeignDzContainer] :container Pyramid container type
+# @option opts [Integer] :compression ZIP deflate compression level
+# @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
+# @option opts [Integer] :skip_blanks Skip tiles which are nearly equal to the background
+# @option opts [String] :id Resource ID
+# @option opts [Integer] :Q Q factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [nil]
+
# @!method pngsave(filename, **opts)
# Save image to png file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :compression Compression factor
# @option opts [Boolean] :interlace Interlace image
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignPngFilter] :filter libpng row filter flag(s)
# @option opts [Boolean] :palette Quantise to 8bpp palette
# @option opts [Integer] :Q Quantisation quality
# @option opts [Float] :dither Amount of dithering
-# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
+# @option opts [Integer] :bitdepth Write as a 1, 2, 4, 8 or 16 bit image
# @option opts [Integer] :effort Quantisation CPU effort
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method pngsave_buffer(**opts)
# Save image to png buffer.
# @param opts [Hash] Set of options
# @option opts [Integer] :compression Compression factor
# @option opts [Boolean] :interlace Interlace image
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignPngFilter] :filter libpng row filter flag(s)
# @option opts [Boolean] :palette Quantise to 8bpp palette
# @option opts [Integer] :Q Quantisation quality
# @option opts [Float] :dither Amount of dithering
-# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
+# @option opts [Integer] :bitdepth Write as a 1, 2, 4, 8 or 16 bit image
# @option opts [Integer] :effort Quantisation CPU effort
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method pngsave_target(target, **opts)
# Save image to target as png.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :compression Compression factor
# @option opts [Boolean] :interlace Interlace image
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignPngFilter] :filter libpng row filter flag(s)
# @option opts [Boolean] :palette Quantise to 8bpp palette
# @option opts [Integer] :Q Quantisation quality
# @option opts [Float] :dither Amount of dithering
-# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
+# @option opts [Integer] :bitdepth Write as a 1, 2, 4, 8 or 16 bit image
# @option opts [Integer] :effort Quantisation CPU effort
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method jpegsave(filename, **opts)
# Save image to jpeg file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :optimize_coding Compute optimal Huffman coding tables
# @option opts [Boolean] :interlace Generate an interlaced (progressive) jpeg
# @option opts [Boolean] :trellis_quant Apply trellis quantisation to each 8x8 block
# @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
# @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
# @option opts [Integer] :quant_table Use predefined quantization table with given index
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
# @option opts [Integer] :restart_interval Add restart markers every specified number of mcu
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method jpegsave_buffer(**opts)
# Save image to jpeg buffer.
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :optimize_coding Compute optimal Huffman coding tables
# @option opts [Boolean] :interlace Generate an interlaced (progressive) jpeg
# @option opts [Boolean] :trellis_quant Apply trellis quantisation to each 8x8 block
# @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
# @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
# @option opts [Integer] :quant_table Use predefined quantization table with given index
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
# @option opts [Integer] :restart_interval Add restart markers every specified number of mcu
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method jpegsave_target(target, **opts)
# Save image to jpeg target.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :optimize_coding Compute optimal Huffman coding tables
# @option opts [Boolean] :interlace Generate an interlaced (progressive) jpeg
# @option opts [Boolean] :trellis_quant Apply trellis quantisation to each 8x8 block
# @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
# @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
# @option opts [Integer] :quant_table Use predefined quantization table with given index
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
# @option opts [Integer] :restart_interval Add restart markers every specified number of mcu
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method jpegsave_mime(**opts)
# Save image to jpeg mime.
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [String] :profile ICC profile to embed
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :optimize_coding Compute optimal Huffman coding tables
# @option opts [Boolean] :interlace Generate an interlaced (progressive) jpeg
# @option opts [Boolean] :trellis_quant Apply trellis quantisation to each 8x8 block
# @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
# @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
# @option opts [Integer] :quant_table Use predefined quantization table with given index
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
# @option opts [Integer] :restart_interval Add restart markers every specified number of mcu
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method webpsave(filename, **opts)
-# Save image to webp file.
+# Save as webp.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [Boolean] :lossless enable lossless compression
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignWebpPreset] :preset Preset for lossy compression
# @option opts [Boolean] :smart_subsample Enable high quality chroma subsampling
# @option opts [Boolean] :near_lossless Enable preprocessing in lossless mode (uses Q)
# @option opts [Integer] :alpha_q Change alpha plane fidelity for lossy compression
-# @option opts [Boolean] :min_size Optimise for minium size
+# @option opts [Boolean] :min_size Optimise for minimum size
# @option opts [Integer] :kmin Minimum number of frames between key frames
# @option opts [Integer] :kmax Maximum number of frames between key frames
# @option opts [Integer] :effort Level of CPU effort to reduce file size
-# @option opts [String] :profile ICC profile to embed
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Boolean] :mixed Allow mixed encoding (might reduce file size)
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method webpsave_buffer(**opts)
-# Save image to webp buffer.
+# Save as webp.
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [Boolean] :lossless enable lossless compression
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignWebpPreset] :preset Preset for lossy compression
# @option opts [Boolean] :smart_subsample Enable high quality chroma subsampling
# @option opts [Boolean] :near_lossless Enable preprocessing in lossless mode (uses Q)
# @option opts [Integer] :alpha_q Change alpha plane fidelity for lossy compression
-# @option opts [Boolean] :min_size Optimise for minium size
+# @option opts [Boolean] :min_size Optimise for minimum size
# @option opts [Integer] :kmin Minimum number of frames between key frames
# @option opts [Integer] :kmax Maximum number of frames between key frames
# @option opts [Integer] :effort Level of CPU effort to reduce file size
-# @option opts [String] :profile ICC profile to embed
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Boolean] :mixed Allow mixed encoding (might reduce file size)
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method webpsave_target(target, **opts)
-# Save image to webp target.
+# Save as webp.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
-# @option opts [Boolean] :lossless enable lossless compression
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Vips::ForeignWebpPreset] :preset Preset for lossy compression
# @option opts [Boolean] :smart_subsample Enable high quality chroma subsampling
# @option opts [Boolean] :near_lossless Enable preprocessing in lossless mode (uses Q)
# @option opts [Integer] :alpha_q Change alpha plane fidelity for lossy compression
-# @option opts [Boolean] :min_size Optimise for minium size
+# @option opts [Boolean] :min_size Optimise for minimum size
# @option opts [Integer] :kmin Minimum number of frames between key frames
# @option opts [Integer] :kmax Maximum number of frames between key frames
# @option opts [Integer] :effort Level of CPU effort to reduce file size
-# @option opts [String] :profile ICC profile to embed
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Boolean] :mixed Allow mixed encoding (might reduce file size)
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
+# @!method webpsave_mime(**opts)
+# Save image to webp mime.
+# @param opts [Hash] Set of options
+# @option opts [Integer] :Q Q factor
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignWebpPreset] :preset Preset for lossy compression
+# @option opts [Boolean] :smart_subsample Enable high quality chroma subsampling
+# @option opts [Boolean] :near_lossless Enable preprocessing in lossless mode (uses Q)
+# @option opts [Integer] :alpha_q Change alpha plane fidelity for lossy compression
+# @option opts [Boolean] :min_size Optimise for minimum size
+# @option opts [Integer] :kmin Minimum number of frames between key frames
+# @option opts [Integer] :kmax Maximum number of frames between key frames
+# @option opts [Integer] :effort Level of CPU effort to reduce file size
+# @option opts [Boolean] :mixed Allow mixed encoding (might reduce file size)
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [nil]
+
# @!method tiffsave(filename, **opts)
# Save image to tiff file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Vips::ForeignTiffCompression] :compression Compression for this file
# @option opts [Integer] :Q Q factor
# @option opts [Vips::ForeignTiffPredictor] :predictor Compression prediction
-# @option opts [String] :profile ICC profile to embed
# @option opts [Boolean] :tile Write a tiled tiff
# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :tile_height Tile height in pixels
# @option opts [Boolean] :pyramid Write a pyramidal tiff
# @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
# @option opts [Vips::ForeignTiffResunit] :resunit Resolution unit
@@ -2006,24 +2113,24 @@
# @option opts [Integer] :level ZSTD compression level
# @option opts [Boolean] :lossless Enable WEBP lossless mode
# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
# @option opts [Boolean] :subifd Save pyr layers as sub-IFDs
# @option opts [Boolean] :premultiply Save with premultiplied alpha
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method tiffsave_buffer(**opts)
# Save image to tiff buffer.
# @param opts [Hash] Set of options
# @option opts [Vips::ForeignTiffCompression] :compression Compression for this file
# @option opts [Integer] :Q Q factor
# @option opts [Vips::ForeignTiffPredictor] :predictor Compression prediction
-# @option opts [String] :profile ICC profile to embed
# @option opts [Boolean] :tile Write a tiled tiff
# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Integer] :tile_height Tile height in pixels
# @option opts [Boolean] :pyramid Write a pyramidal tiff
# @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
# @option opts [Vips::ForeignTiffResunit] :resunit Resolution unit
@@ -2035,99 +2142,188 @@
# @option opts [Integer] :level ZSTD compression level
# @option opts [Boolean] :lossless Enable WEBP lossless mode
# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
# @option opts [Boolean] :subifd Save pyr layers as sub-IFDs
# @option opts [Boolean] :premultiply Save with premultiplied alpha
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
-# @!method magicksave(filename, **opts)
-# Save file with imagemagick.
-# @param filename [String] Filename to save to
+# @!method tiffsave_target(target, **opts)
+# Save image to tiff target.
+# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
-# @option opts [String] :format Format to save in
-# @option opts [Integer] :quality Quality to use
-# @option opts [Boolean] :optimize_gif_frames Apply GIF frames optimization
-# @option opts [Boolean] :optimize_gif_transparency Apply GIF transparency optimization
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignTiffCompression] :compression Compression for this file
+# @option opts [Integer] :Q Q factor
+# @option opts [Vips::ForeignTiffPredictor] :predictor Compression prediction
+# @option opts [Boolean] :tile Write a tiled tiff
+# @option opts [Integer] :tile_width Tile width in pixels
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :tile_height Tile height in pixels
+# @option opts [Boolean] :pyramid Write a pyramidal tiff
+# @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
+# @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
+# @option opts [Vips::ForeignTiffResunit] :resunit Resolution unit
+# @option opts [Float] :xres Horizontal resolution in pixels/mm
+# @option opts [Float] :yres Vertical resolution in pixels/mm
+# @option opts [Boolean] :bigtiff Write a bigtiff image
+# @option opts [Boolean] :properties Write a properties document to IMAGEDESCRIPTION
+# @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
+# @option opts [Integer] :level ZSTD compression level
+# @option opts [Boolean] :lossless Enable WEBP lossless mode
+# @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
+# @option opts [Boolean] :subifd Save pyr layers as sub-IFDs
+# @option opts [Boolean] :premultiply Save with premultiplied alpha
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
-# @!method magicksave_buffer(**opts)
-# Save image to magick buffer.
-# @param opts [Hash] Set of options
-# @option opts [String] :format Format to save in
-# @option opts [Integer] :quality Quality to use
-# @option opts [Boolean] :optimize_gif_frames Apply GIF frames optimization
-# @option opts [Boolean] :optimize_gif_transparency Apply GIF transparency optimization
-# @option opts [Boolean] :strip Strip all metadata from image
-# @option opts [Array<Double>] :background Background value
-# @option opts [Integer] :page_height Set page height for multipage save
-# @return [VipsBlob] Buffer to save to
-
# @!method fitssave(filename, **opts)
# Save image to fits file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method niftisave(filename, **opts)
# Save image to nifti file.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method heifsave(filename, **opts)
# Save image in heif format.
# @param filename [String] Filename to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
+# @option opts [Integer] :bitdepth Number of bits per pixel
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Vips::ForeignHeifCompression] :compression Compression format
# @option opts [Integer] :effort CPU effort
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignHeifEncoder] :encoder Select encoder to use
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
# @!method heifsave_buffer(**opts)
# Save image in heif format.
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
+# @option opts [Integer] :bitdepth Number of bits per pixel
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Vips::ForeignHeifCompression] :compression Compression format
# @option opts [Integer] :effort CPU effort
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignHeifEncoder] :encoder Select encoder to use
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [VipsBlob] Buffer to save to
# @!method heifsave_target(target, **opts)
# Save image in heif format.
# @param target [Vips::Target] Target to save to
# @param opts [Hash] Set of options
# @option opts [Integer] :Q Q factor
+# @option opts [Integer] :bitdepth Number of bits per pixel
+# @option opts [String] :profile Filename of ICC profile to embed
# @option opts [Boolean] :lossless Enable lossless compression
# @option opts [Vips::ForeignHeifCompression] :compression Compression format
# @option opts [Integer] :effort CPU effort
# @option opts [Vips::ForeignSubsample] :subsample_mode Select chroma subsample operation mode
-# @option opts [Boolean] :strip Strip all metadata from image
+# @option opts [Vips::ForeignHeifEncoder] :encoder Select encoder to use
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
# @option opts [Array<Double>] :background Background value
# @option opts [Integer] :page_height Set page height for multipage save
# @return [nil]
+# @!method jxlsave(filename, **opts)
+# Save image in jpeg-xl format.
+# @param filename [String] Filename to load from
+# @param opts [Hash] Set of options
+# @option opts [Integer] :tier Decode speed tier
+# @option opts [Float] :distance Target butteraugli distance
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :effort Encoding effort
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [Integer] :Q Quality factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [nil]
+
+# @!method jxlsave_buffer(**opts)
+# Save image in jpeg-xl format.
+# @param opts [Hash] Set of options
+# @option opts [Integer] :tier Decode speed tier
+# @option opts [Float] :distance Target butteraugli distance
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :effort Encoding effort
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [Integer] :Q Quality factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [VipsBlob] Buffer to save to
+
+# @!method jxlsave_target(target, **opts)
+# Save image in jpeg-xl format.
+# @param target [Vips::Target] Target to save to
+# @param opts [Hash] Set of options
+# @option opts [Integer] :tier Decode speed tier
+# @option opts [Float] :distance Target butteraugli distance
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Integer] :effort Encoding effort
+# @option opts [Boolean] :lossless Enable lossless compression
+# @option opts [Integer] :Q Quality factor
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [nil]
+
+# @!method magicksave(filename, **opts)
+# Save file with imagemagick.
+# @param filename [String] Filename to save to
+# @param opts [Hash] Set of options
+# @option opts [String] :format Format to save in
+# @option opts [Integer] :quality Quality to use
+# @option opts [Boolean] :optimize_gif_frames Apply GIF frames optimization
+# @option opts [Boolean] :optimize_gif_transparency Apply GIF transparency optimization
+# @option opts [Integer] :bitdepth Number of bits per pixel
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [nil]
+
+# @!method magicksave_buffer(**opts)
+# Save image to magick buffer.
+# @param opts [Hash] Set of options
+# @option opts [String] :format Format to save in
+# @option opts [Integer] :quality Quality to use
+# @option opts [Boolean] :optimize_gif_frames Apply GIF frames optimization
+# @option opts [Boolean] :optimize_gif_transparency Apply GIF transparency optimization
+# @option opts [Integer] :bitdepth Number of bits per pixel
+# @option opts [String] :profile Filename of ICC profile to embed
+# @option opts [Vips::ForeignKeep] :keep Which metadata to retain
+# @option opts [Array<Double>] :background Background value
+# @option opts [Integer] :page_height Set page height for multipage save
+# @return [VipsBlob] Buffer to save to
+
# @!method self.thumbnail(filename, width, **opts)
# Generate thumbnail from file.
# @param filename [String] Filename to read from
# @param width [Integer] Size to this width
# @param opts [Hash] Set of options
@@ -2137,10 +2333,11 @@
# @option opts [Vips::Interesting] :crop Reduce to fill target rectangle, then crop
# @option opts [Boolean] :linear Reduce in linear light
# @option opts [String] :import_profile Fallback import profile
# @option opts [String] :export_profile Fallback export profile
# @option opts [Vips::Intent] :intent Rendering intent
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
# @return [Vips::Image] Output image
# @!method self.thumbnail_buffer(buffer, width, **opts)
# Generate thumbnail from buffer.
# @param buffer [VipsBlob] Buffer to load from
@@ -2153,10 +2350,11 @@
# @option opts [Vips::Interesting] :crop Reduce to fill target rectangle, then crop
# @option opts [Boolean] :linear Reduce in linear light
# @option opts [String] :import_profile Fallback import profile
# @option opts [String] :export_profile Fallback export profile
# @option opts [Vips::Intent] :intent Rendering intent
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
# @return [Vips::Image] Output image
# @!method thumbnail_image(width, **opts)
# Generate thumbnail from image.
# @param width [Integer] Size to this width
@@ -2167,10 +2365,11 @@
# @option opts [Vips::Interesting] :crop Reduce to fill target rectangle, then crop
# @option opts [Boolean] :linear Reduce in linear light
# @option opts [String] :import_profile Fallback import profile
# @option opts [String] :export_profile Fallback export profile
# @option opts [Vips::Intent] :intent Rendering intent
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
# @return [Vips::Image] Output image
# @!method self.thumbnail_source(source, width, **opts)
# Generate thumbnail from source.
# @param source [Vips::Source] Source to load from
@@ -2183,58 +2382,68 @@
# @option opts [Vips::Interesting] :crop Reduce to fill target rectangle, then crop
# @option opts [Boolean] :linear Reduce in linear light
# @option opts [String] :import_profile Fallback import profile
# @option opts [String] :export_profile Fallback export profile
# @option opts [Vips::Intent] :intent Rendering intent
+# @option opts [Vips::FailOn] :fail_on Error level to fail on
# @return [Vips::Image] Output image
# @!method mapim(index, **opts)
# Resample with a map image.
# @param index [Vips::Image] Index pixels with this
# @param opts [Hash] Set of options
# @option opts [Vips::Interpolate] :interpolate Interpolate pixels with this
+# @option opts [Array<Double>] :background Background value
+# @option opts [Boolean] :premultiplied Images have premultiplied alpha
+# @option opts [Vips::Extend] :extend How to generate the extra pixels
# @return [Vips::Image] Output image
# @!method shrink(hshrink, vshrink, **opts)
# Shrink an image.
# @param hshrink [Float] Horizontal shrink factor
# @param vshrink [Float] Vertical shrink factor
# @param opts [Hash] Set of options
+# @option opts [Boolean] :ceil Round-up output dimensions
# @return [Vips::Image] Output image
# @!method shrinkh(hshrink, **opts)
# Shrink an image horizontally.
# @param hshrink [Integer] Horizontal shrink factor
# @param opts [Hash] Set of options
+# @option opts [Boolean] :ceil Round-up output dimensions
# @return [Vips::Image] Output image
# @!method shrinkv(vshrink, **opts)
# Shrink an image vertically.
# @param vshrink [Integer] Vertical shrink factor
# @param opts [Hash] Set of options
+# @option opts [Boolean] :ceil Round-up output dimensions
# @return [Vips::Image] Output image
# @!method reduceh(hshrink, **opts)
# Shrink an image horizontally.
# @param hshrink [Float] Horizontal shrink factor
# @param opts [Hash] Set of options
# @option opts [Vips::Kernel] :kernel Resampling kernel
+# @option opts [Float] :gap Reducing gap
# @return [Vips::Image] Output image
# @!method reducev(vshrink, **opts)
# Shrink an image vertically.
# @param vshrink [Float] Vertical shrink factor
# @param opts [Hash] Set of options
# @option opts [Vips::Kernel] :kernel Resampling kernel
+# @option opts [Float] :gap Reducing gap
# @return [Vips::Image] Output image
# @!method reduce(hshrink, vshrink, **opts)
# Reduce an image.
# @param hshrink [Float] Horizontal shrink factor
# @param vshrink [Float] Vertical shrink factor
# @param opts [Hash] Set of options
# @option opts [Vips::Kernel] :kernel Resampling kernel
+# @option opts [Float] :gap Reducing gap
# @return [Vips::Image] Output image
# @!method quadratic(coeff, **opts)
# Resample an image with a quadratic transform.
# @param coeff [Vips::Image] Coefficient matrix
@@ -2285,10 +2494,11 @@
# @!method resize(scale, **opts)
# Resize an image.
# @param scale [Float] Scale image by this factor
# @param opts [Hash] Set of options
# @option opts [Vips::Kernel] :kernel Resampling kernel
+# @option opts [Float] :gap Reducing gap
# @option opts [Float] :vscale Vertical scale image by this factor
# @return [Vips::Image] Output image
# @!method colourspace(space, **opts)
# Convert to a new colorspace.
@@ -2337,20 +2547,10 @@
# @!method Yxy2XYZ(**opts)
# Transform yxy to xyz.
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
-# @!method scRGB2XYZ(**opts)
-# Transform scrgb to xyz.
-# @param opts [Hash] Set of options
-# @return [Vips::Image] Output image
-
-# @!method XYZ2scRGB(**opts)
-# Transform xyz to scrgb.
-# @param opts [Hash] Set of options
-# @return [Vips::Image] Output image
-
# @!method LabQ2Lab(**opts)
# Unpack a labq image to float lab.
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
@@ -2457,16 +2657,26 @@
# @!method sRGB2scRGB(**opts)
# Convert an srgb image to scrgb.
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
+# @!method scRGB2XYZ(**opts)
+# Transform scrgb to xyz.
+# @param opts [Hash] Set of options
+# @return [Vips::Image] Output image
+
# @!method scRGB2BW(**opts)
# Convert scrgb to bw.
# @param opts [Hash] Set of options
# @option opts [Integer] :depth Output device space depth in bits
# @return [Vips::Image] Output image
+# @!method XYZ2scRGB(**opts)
+# Transform xyz to scrgb.
+# @param opts [Hash] Set of options
+# @return [Vips::Image] Output image
+
# @!method scRGB2sRGB(**opts)
# Convert an scrgb image to srgb.
# @param opts [Hash] Set of options
# @option opts [Integer] :depth Output device space depth in bits
# @return [Vips::Image] Output image
@@ -2489,11 +2699,11 @@
# @!method maplut(lut, **opts)
# Map an image though a lut.
# @param lut [Vips::Image] Look-up table image
# @param opts [Hash] Set of options
-# @option opts [Integer] :band apply one-band lut to this band of in
+# @option opts [Integer] :band Apply one-band lut to this band of in
# @return [Vips::Image] Output image
# @!method case(cases, **opts)
# Use pixel values to pick cases from an array of images.
# @param cases [Array<Image>] Array of case images
@@ -2602,11 +2812,11 @@
# @option opts [Integer] :layers Use this many layers in approximation
# @option opts [Integer] :cluster Cluster lines closer than this in approximation
# @return [Vips::Image] Output image
# @!method convsep(mask, **opts)
-# Seperable convolution operation.
+# Separable convolution operation.
# @param mask [Vips::Image] Input matrix image
# @param opts [Hash] Set of options
# @option opts [Vips::Precision] :precision Convolve with this precision
# @option opts [Integer] :layers Use this many layers in approximation
# @option opts [Integer] :cluster Cluster lines closer than this in approximation
@@ -2648,22 +2858,32 @@
# @param opts [Hash] Set of options
# @option opts [Float] :min_ampl Minimum amplitude of Gaussian
# @option opts [Vips::Precision] :precision Convolve with this precision
# @return [Vips::Image] Output image
+# @!method sobel(**opts)
+# Sobel edge detector.
+# @param opts [Hash] Set of options
+# @return [Vips::Image] Output image
+
+# @!method scharr(**opts)
+# Scharr edge detector.
+# @param opts [Hash] Set of options
+# @return [Vips::Image] Output image
+
+# @!method prewitt(**opts)
+# Prewitt edge detector.
+# @param opts [Hash] Set of options
+# @return [Vips::Image] Output image
+
# @!method canny(**opts)
# Canny edge detector.
# @param opts [Hash] Set of options
# @option opts [Float] :sigma Sigma of Gaussian
# @option opts [Vips::Precision] :precision Convolve with this precision
# @return [Vips::Image] Output image
-# @!method sobel(**opts)
-# Sobel edge detector.
-# @param opts [Hash] Set of options
-# @return [Vips::Image] Output image
-
# @!method fwfft(**opts)
# Forward fft.
# @param opts [Hash] Set of options
# @return [Vips::Image] Output image
@@ -2712,11 +2932,11 @@
# @return [Float] Number of lines
# @!method labelregions(**opts)
# Label regions in an image.
# @param opts [Hash] Set of options
-# @option opts [Integer] :segments Output Number of discrete contigious regions
+# @option opts [Integer] :segments Output Number of discrete contiguous regions
# @return [Vips::Image, Hash<Symbol => Object>] Mask of region labels, Hash of optional output items
# @!method fill_nearest(**opts)
# Fill image zeros with nearest non-zero pixel.
# @param opts [Hash] Set of options
@@ -2770,13 +2990,13 @@
# @param y [Integer] DrawFlood start point
# @param opts [Hash] Set of options
# @option opts [Vips::Image] :test Test pixels in this image
# @option opts [Boolean] :equal DrawFlood while equal to edge
# @option opts [Integer] :left Output Left edge of modified area
-# @option opts [Integer] :top Output top edge of modified area
-# @option opts [Integer] :width Output width of modified area
-# @option opts [Integer] :height Output height of modified area
+# @option opts [Integer] :top Output Top edge of modified area
+# @option opts [Integer] :width Output Width of modified area
+# @option opts [Integer] :height Output Height of modified area
# @return [Vips::Image, Hash<Symbol => Object>] Image to draw on, Hash of optional output items
# @!method draw_image(sub, x, y, **opts)
# Paint an image into another image.
# @param sub [Vips::Image] Sub-image to insert into main image
@@ -2842,10 +3062,9 @@
# @option opts [Integer] :hwindow Half window size
# @option opts [Integer] :harea Half area size
# @option opts [Boolean] :search Search to improve tie-points
# @option opts [Vips::Interpolate] :interpolate Interpolate pixels with this
# @option opts [Integer] :mblend Maximum blend size
-# @option opts [Integer] :bandno Band to search for features on
# @return [Vips::Image] Output image
# @!method matrixinvert(**opts)
# Invert an matrix.
# @param opts [Hash] Set of options