Class: Vips::Image

Inherits:
Object show all
Defined in:
lib/vips/image.rb,
lib/vips/methods.rb

Overview

This class represents a libvips image. See the Vips module documentation for an introduction to using this class.

Defined Under Namespace

Modules: ImageLayout Classes: GenericPtr, ManagedStruct, Struct

Instance Attribute Summary

Attributes inherited from GObject::GObject

#ptr, #references

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Object

#get_pspec, #get_typeof_error, print_all, #signal_connect

Methods inherited from GObject::GObject

ffi_managed_struct, #ffi_managed_struct, #ffi_struct, ffi_struct, #initialize

Constructor Details

This class inherits a constructor from GObject::GObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, **options) ⇒ Object

Invoke a vips operation with Operation.call, using self as the first input argument.

Parameters:

  • name (String)

    vips operation to call

Returns:

  • result of vips operation



228
229
230
# File 'lib/vips/image.rb', line 228

def method_missing name, *args, **options
  Vips::Operation.call name.to_s, [self, *args], options
end

Class Method Details

.analyzeload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load an analyze6 image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 970

.arrayjoin(im, **opts) ⇒ Vips::Image

Join an array of images.

Parameters:

  • im (Array<Image>)

    Array of input images

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :across (Integer)

    Number of images across grid

  • :shim (Integer)

    Pixels between images

  • :background (Array<Double>)

    Colour for new pixels

  • :halign (Vips::Align)

    Align on the left, centre or right

  • :valign (Vips::Align)

    Align on the top, centre or bottom

  • :hspacing (Integer)

    Horizontal spacing between images

  • :vspacing (Integer)

    Vertical spacing between images

Returns:



# File 'lib/vips/methods.rb', line 363

.bandrank(im, **opts) ⇒ Vips::Image

Band-wise rank of a set of images.

Parameters:

  • im (Array<Image>)

    Array of input images

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :index (Integer)

    Select this band element from sorted list

Returns:



# File 'lib/vips/methods.rb', line 418

.black(width, height, **opts) ⇒ Vips::Image

Make a black image.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :bands (Integer)

    Number of bands in image

Returns:



# File 'lib/vips/methods.rb', line 576

.csvload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load csv.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :skip (Integer)

    Skip this many lines at the start of the file

  • :lines (Integer)

    Read this many lines from the file

  • :whitespace (String)

    Set of whitespace characters

  • :separator (String)

    Set of separator characters

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 879

.csvload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load csv.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :skip (Integer)

    Skip this many lines at the start of the file

  • :lines (Integer)

    Read this many lines from the file

  • :whitespace (String)

    Set of whitespace characters

  • :separator (String)

    Set of separator characters

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 894

.eye(width, height, **opts) ⇒ Vips::Image

Make an image showing the eye's spatial response.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :factor (Float)

    Maximum spatial frequency

Returns:



# File 'lib/vips/methods.rb', line 639

.fitsload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load a fits image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1329

.fitsload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load fits from a source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1340

.fractsurf(width, height, fractal_dimension, **opts) ⇒ Vips::Image

Make a fractal surface.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • fractal_dimension (Float)

    Fractal dimension

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 846

.gaussmat(sigma, min_ampl, **opts) ⇒ Vips::Image

Make a gaussian image.

Parameters:

  • sigma (Float)

    Sigma of Gaussian

  • min_ampl (Float)

    Minimum amplitude of Gaussian

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :separable (Boolean)

    Generate separable Gaussian

  • :precision (Vips::Precision)

    Generate with this precision

Returns:



# File 'lib/vips/methods.rb', line 604

.gaussnoise(width, height, **opts) ⇒ Vips::Image

Make a gaussnoise image.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :sigma (Float)

    Standard deviation of pixels in generated image

  • :mean (Float)

    Mean of pixels in generated image

  • :seed (Integer)

    Random number seed

Returns:



# File 'lib/vips/methods.rb', line 584

.gifload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load gif with libnsgif.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :n (Integer)

    Number of pages to load, -1 for all

  • :page (Integer)

    First page to load

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1114

.gifload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load gif with libnsgif.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :n (Integer)

    Number of pages to load, -1 for all

  • :page (Integer)

    First page to load

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1127

.gifload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load gif from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :n (Integer)

    Number of pages to load, -1 for all

  • :page (Integer)

    First page to load

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1140

.grey(width, height, **opts) ⇒ Vips::Image

Make a grey ramp image.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

Returns:



# File 'lib/vips/methods.rb', line 648

.heifload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load a heif image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :thumbnail (Boolean)

    Fetch thumbnail image

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1416

.heifload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load a heif image.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :thumbnail (Boolean)

    Fetch thumbnail image

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1431

.heifload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load a heif image.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :thumbnail (Boolean)

    Fetch thumbnail image

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1446

.identity(**opts) ⇒ Vips::Image

Make a 1d image where pixel values are indexes.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :bands (Integer)

    Number of bands in LUT

  • :ushort (Boolean)

    Create a 16-bit LUT

  • :size (Integer)

    Size of 16-bit LUT

Returns:



# File 'lib/vips/methods.rb', line 838

.jp2kload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg2000 image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    Load this page from the image

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1078

.jp2kload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg2000 image.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    Load this page from the image

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1090

.jp2kload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg2000 image.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    Load this page from the image

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1102

.jpegload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :shrink (Integer)

    Shrink factor on load

  • :autorotate (Boolean)

    Rotate image using exif orientation

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1200

.jpegload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :shrink (Integer)

    Shrink factor on load

  • :autorotate (Boolean)

    Rotate image using exif orientation

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1214

.jpegload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load image from jpeg source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :shrink (Integer)

    Shrink factor on load

  • :autorotate (Boolean)

    Rotate image using exif orientation

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1228

.jxlload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg-xl image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1461

.jxlload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg-xl image.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1472

.jxlload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load jpeg-xl image.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1483

.logmat(sigma, min_ampl, **opts) ⇒ Vips::Image

Make a laplacian of gaussian image.

Parameters:

  • sigma (Float)

    Radius of Gaussian

  • min_ampl (Float)

    Minimum amplitude of Gaussian

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :separable (Boolean)

    Generate separable Gaussian

  • :precision (Vips::Precision)

    Generate with this precision

Returns:



# File 'lib/vips/methods.rb', line 613

.magickload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load file with imagemagick.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :density (String)

    Canvas resolution for rendering vector formats like SVG

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1545

.magickload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load buffer with imagemagick.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :density (String)

    Canvas resolution for rendering vector formats like SVG

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1559

.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, **opts) ⇒ Vips::Image

Make a butterworth filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • order (Float)

    Filter order

  • frequency_cutoff (Float)

    Frequency cutoff

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 713

.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, **opts) ⇒ Vips::Image

Make a butterworth_band filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • order (Float)

    Filter order

  • frequency_cutoff_x (Float)

    Frequency cutoff x

  • frequency_cutoff_y (Float)

    Frequency cutoff y

  • radius (Float)

    Radius of circle

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 742

.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, **opts) ⇒ Vips::Image

Make a butterworth ring filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • order (Float)

    Filter order

  • frequency_cutoff (Float)

    Frequency cutoff

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • ringwidth (Float)

    Ringwidth

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 727

.mask_fractal(width, height, fractal_dimension, **opts) ⇒ Vips::Image

Make fractal filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • fractal_dimension (Float)

    Fractal dimension

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 800

.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, **opts) ⇒ Vips::Image

Make a gaussian filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff (Float)

    Frequency cutoff

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 758

.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, **opts) ⇒ Vips::Image

Make a gaussian filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff_x (Float)

    Frequency cutoff x

  • frequency_cutoff_y (Float)

    Frequency cutoff y

  • radius (Float)

    Radius of circle

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 785

.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, **opts) ⇒ Vips::Image

Make a gaussian ring filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff (Float)

    Frequency cutoff

  • amplitude_cutoff (Float)

    Amplitude cutoff

  • ringwidth (Float)

    Ringwidth

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 771

.mask_ideal(width, height, frequency_cutoff, **opts) ⇒ Vips::Image

Make an ideal filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff (Float)

    Frequency cutoff

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 674

.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, **opts) ⇒ Vips::Image

Make an ideal band filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff_x (Float)

    Frequency cutoff x

  • frequency_cutoff_y (Float)

    Frequency cutoff y

  • radius (Float)

    Radius of circle

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 699

.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, **opts) ⇒ Vips::Image

Make an ideal ring filter.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • frequency_cutoff (Float)

    Frequency cutoff

  • ringwidth (Float)

    Ringwidth

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :nodc (Boolean)

    Remove DC component

  • :reject (Boolean)

    Invert the sense of the filter

  • :optical (Boolean)

    Rotate quadrants to optical space

Returns:



# File 'lib/vips/methods.rb', line 686

.matload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load mat from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1189

.matrix_from_array(width, height, array) ⇒ Object



471
472
473
474
475
476
477
# File 'lib/vips/image.rb', line 471

def self.matrix_from_array width, height, array
  ptr = FFI::MemoryPointer.new :double, array.length
  ptr.write_array_of_double array
  image = Vips.vips_image_new_matrix_from_array width, height,
    ptr, array.length
  Vips::Image.new image
end

.matrixload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load matrix.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 909

.matrixload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load matrix.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 920

.method_missing(name, *args, **options) ⇒ Object

Invoke a vips operation with Operation.call.



233
234
235
# File 'lib/vips/image.rb', line 233

def self.method_missing name, *args, **options
  Vips::Operation.call name.to_s, args, options
end

.new_from_array(array, scale = 1, offset = 0) ⇒ Image

Create a new Image from a 1D or 2D array. A 1D array becomes an image with height 1. Use scale and offset to set the scale and offset fields in the header. These are useful for integer convolutions.

For example:

image = Vips::Image.new_from_array [1, 2, 3]

or

image = Vips::Image.new_from_array [
    [-1, -1, -1],
    [-1, 16, -1],
    [-1, -1, -1]], 8

for a simple sharpening mask.

Parameters:

  • array (Array)

    the pixel data as an array of numbers

  • scale (Real) (defaults to: 1)

    the convolution scale

  • offset (Real) (defaults to: 0)

    the convolution offset

Returns:

Raises:



505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
# File 'lib/vips/image.rb', line 505

def self.new_from_array array, scale = 1, offset = 0
  # we accept a 1D array and assume height == 1, or a 2D array
  # and check all lines are the same length
  unless array.is_a? Array
    raise Vips::Error, "Argument is not an array."
  end

  if array[0].is_a? Array
    height = array.length
    width = array[0].length
    unless array.all? { |x| x.is_a? Array }
      raise Vips::Error, "Not a 2D array."
    end
    unless array.all? { |x| x.length == width }
      raise Vips::Error, "Array not rectangular."
    end

    array = array.flatten
  else
    height = 1
    width = array.length
  end

  unless array.length == width * height
    raise Vips::Error, "Bad array dimensions."
  end

  unless array.all? { |x| x.is_a? Numeric }
    raise Vips::Error, "Not all array elements are Numeric."
  end

  image = Vips::Image.matrix_from_array width, height, array
  raise Vips::Error if image.nil?

  image.mutate do |mutable|
    # be careful to set them as double
    mutable.set_type! GObject::GDOUBLE_TYPE, "scale", scale.to_f
    mutable.set_type! GObject::GDOUBLE_TYPE, "offset", offset.to_f
  end
end

.new_from_buffer(data, option_string, **opts) ⇒ Image

Create a new Vips::Image for an image encoded in a format such as JPEG in a binary string. Load options may be passed as strings or appended as a hash. For example:

image = Vips::Image.new_from_buffer memory_buffer, "shrink=2"

or alternatively:

image = Vips::Image.new_from_buffer memory_buffer, "", shrink: 2

The options available depend on the file format. Try something like:

$ vips jpegload_buffer

at the command-line to see the available options. Not all loaders support load from buffer, but at least JPEG, PNG and TIFF images will work.

Loading is fast: only enough of the image is loaded to be able to fill out the header. Pixels will only be decompressed when they are needed.

Parameters:

  • data (String)

    the data to load from

  • option_string (String)

    load options as a string

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :disc (Boolean) — default: true

    Open large images via a temporary disc file

  • :access (Vips::Access) — default: :random

    Access mode for file

Returns:

  • (Image)

    the loaded image

Raises:



317
318
319
320
321
322
# File 'lib/vips/image.rb', line 317

def self.new_from_buffer data, option_string, **opts
  loader = Vips.vips_foreign_find_load_buffer data, data.bytesize
  raise Vips::Error if loader.nil?

  Vips::Operation.call loader, [data], opts, option_string
end

.new_from_file(name, **opts) ⇒ Image

Return a new Vips::Image for a file on disc. This method can load images in any format supported by vips. The filename can include load options, for example:

image = Vips::Image.new_from_file "fred.jpg[shrink=2]"

You can also supply options as a hash, for example:

image = Vips::Image.new_from_file "fred.jpg", shrink: 2

The full set of options available depend upon the load operation that will be executed. Try something like:

$ vips jpegload

at the command-line to see a summary of the available options for the JPEG loader.

Loading is fast: only enough of the image is loaded to be able to fill out the header. Pixels will only be decompressed when they are needed.

Parameters:

  • name (String)

    the filename to load from

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :disc (Boolean) — default: true

    Open large images via a temporary disc file

  • :access (Vips::Access) — default: :random

    Access mode for file

Returns:

  • (Image)

    the loaded image

Raises:



273
274
275
276
277
278
279
280
281
282
283
284
# File 'lib/vips/image.rb', line 273

def self.new_from_file name, **opts
  # very common, and Vips::vips_filename_get_filename will segv if we
  # pass this
  raise Vips::Error, "filename is nil" if name.nil?

  filename = Vips.p2str(Vips.vips_filename_get_filename(name))
  option_string = Vips.p2str(Vips.vips_filename_get_options(name))
  loader = Vips.vips_foreign_find_load filename
  raise Vips::Error if loader.nil?

  Operation.call loader, [filename], opts, option_string
end

.new_from_memory(data, width, height, bands, format) ⇒ Image

Create a new Vips::Image from a C-style array held in memory. For example:

image = Vips::Image.black(16, 16) + 128
data = image.write_to_memory

x = Vips::Image.new_from_memory data,
  image.width, image.height, image.bands, image.format

Creating a new image from a memory pointer:

ptr = FFI::MemoryPointer.new(:uchar, 10*10)
# => #<FFI::MemoryPointer address=0x00007fc236db31d0 size=100>
x = Vips::Image.new_from_memory(ptr, 10, 10, 1, :uchar)

Creating a new image from an address only pointer:

ptr = call_to_external_c_library(w: 10, h: 10)
# => #<FFI::Pointer address=0x00007f9780813a00>
ptr_slice = ptr.slice(0, 10*10)
# => #<FFI::Pointer address=0x00007f9780813a00 size=100>
x = Vips::Image.new_from_memory(ptr_slice, 10, 10, 1, :uchar)

new_from_memory keeps a reference to the array of pixels you pass in to try to prevent that memory from being freed by the Ruby GC while it is being used.

See new_from_memory_copy for a version of this method which does not keep a reference.

Parameters:

  • data (String, FFI::Pointer)

    the data to load from

  • width (Integer)

    width in pixels

  • height (Integer)

    height in pixels

  • bands (Integer)

    number of bands

  • format (Symbol)

    band format

Returns:

  • (Image)

    the loaded image

Raises:



365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/vips/image.rb', line 365

def self.new_from_memory data, width, height, bands, format
  # prevent data from being freed with JRuby FFI
  if defined?(JRUBY_VERSION) && !data.is_a?(FFI::Pointer)
    data = ::FFI::MemoryPointer.new(:char, data.bytesize).write_bytes data
  end

  if data.is_a?(FFI::Pointer)
    # A pointer needs to know about the size of the memory it points to.
    # If you have an address-only pointer, use the .slice method to wrap
    # the pointer in a size aware pointer.
    if data.size == UNKNOWN_POINTER_SIZE
      raise Vips::Error, "size of memory is unknown"
    end
    size = data.size
  else
    size = data.bytesize
  end

  format_number = GObject::GValue.from_nick BAND_FORMAT_TYPE, format
  vi = Vips.vips_image_new_from_memory data, size,
    width, height, bands, format_number
  raise Vips::Error if vi.null?
  image = new(vi)

  # keep a secret ref to the underlying object .. this reference will be
  # inherited by things that in turn depend on us, so the memory we are
  # using will not be freed
  image.references << data

  image
end

.new_from_memory_copy(data, width, height, bands, format) ⇒ Image

Create a new Vips::Image from memory and copies the memory area. See new_from_memory for a version of this method which does not copy the memory area.

Parameters:

  • data (String, FFI::Pointer)

    the data to load from

  • width (Integer)

    width in pixels

  • height (Integer)

    height in pixels

  • bands (Integer)

    number of bands

  • format (Symbol)

    band format

Returns:

  • (Image)

    the loaded image

Raises:



407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/vips/image.rb', line 407

def self.new_from_memory_copy data, width, height, bands, format
  format_number = GObject::GValue.from_nick BAND_FORMAT_TYPE, format

  if data.is_a?(FFI::Pointer)
    if data.size == UNKNOWN_POINTER_SIZE
      raise Vips::Error, "size of memory is unknown"
    end
    size = data.size
  else
    size = data.bytesize
  end

  vi = Vips.vips_image_new_from_memory_copy data, size,
    width, height, bands, format_number
  raise Vips::Error if vi.null?
  new(vi)
end

.new_from_source(source, option_string, **opts) ⇒ Image

Create a new Vips::Image from a source. Load options may be passed as strings or appended as a hash. For example:

source = Vips::Source.new_from_file("k2.jpg")
image = Vips::Image.new_from_source source, "shrink=2"

or alternatively:

image = Vips::Image.new_from_source source, "", shrink: 2

The options available depend on the file format. Try something like:

$ vips jpegload_source

at the command-line to see the available options. Not all loaders support load from source, but at least JPEG, PNG and TIFF images will work.

Loading is fast: only enough data is read to be able to fill out the header. Pixels will only be read and decompressed when they are needed.

Parameters:

  • source (Vips::Source)

    the source to load from

  • option_string (String)

    load options as a string

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :disc (Boolean) — default: true

    Open large images via a temporary disc file

  • :access (Vips::Access) — default: :random

    Access mode for file

Returns:

  • (Image)

    the loaded image

Raises:



457
458
459
460
461
462
463
464
465
466
467
468
469
# File 'lib/vips/image.rb', line 457

def self.new_from_source source, option_string, **opts
  loader = Vips.vips_foreign_find_load_source source
  raise Vips::Error if loader.nil?

  result = Vips::Operation.call loader, [source], opts, option_string

  # keep a secret ref to the source object ... the libvips loader will
  # keep a ref to the C source object, but we need the ruby wrapper object
  # to stay alive too
  result.references << source

  result
end

.niftiload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load nifti volume.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1362

.niftiload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load nifti volumes.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1373

.openexrload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load an openexr image.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1351

.openslideload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load file with openslide.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :level (Integer)

    Load this level from the file

  • :autocrop (Boolean)

    Crop to image bounds

  • :associated (String)

    Load this associated image

  • :attach_associated (Boolean)

    Attach all associated images

  • :rgb (Boolean)

    Output RGB (not RGBA)

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1384

.openslideload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load source with openslide.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :level (Integer)

    Load this level from the file

  • :autocrop (Boolean)

    Crop to image bounds

  • :associated (String)

    Load this associated image

  • :attach_associated (Boolean)

    Attach all associated images

  • :rgb (Boolean)

    Output RGB (not RGBA)

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1400

.pdfload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load pdf from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :dpi (Float)

    DPI to render at

  • :scale (Float)

    Factor to scale by

  • :background (Array<Double>)

    Background colour

  • :password (String)

    Password to decrypt with

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1494

.pdfload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load pdf from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :dpi (Float)

    DPI to render at

  • :scale (Float)

    Factor to scale by

  • :background (Array<Double>)

    Background colour

  • :password (String)

    Password to decrypt with

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1511

.pdfload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load pdf from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :dpi (Float)

    DPI to render at

  • :scale (Float)

    Factor to scale by

  • :background (Array<Double>)

    Background colour

  • :password (String)

    Password to decrypt with

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1528

.perlin(width, height, **opts) ⇒ Vips::Image

Make a perlin noise image.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :cell_size (Integer)

    Size of Perlin cells

  • :uchar (Boolean)

    Output an unsigned char image

  • :seed (Integer)

    Random number seed

Returns:



# File 'lib/vips/methods.rb', line 863

.pngload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load png from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1153

.pngload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load png from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1165

.pngload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load png from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :unlimited (Boolean)

    Remove all denial of service limits

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1177

.ppmload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load ppm from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 981

.ppmload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load ppm base class.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 992

.profile_load(name, **opts) ⇒ VipsBlob

Load named icc profile.

Parameters:

  • name (String)

    Profile name

  • opts (Hash)

    Set of options

Returns:

  • (VipsBlob)

    Loaded profile



# File 'lib/vips/methods.rb', line 2694

.radload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load a radiance image from a file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1003

.radload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load rad from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1014

.radload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load rad from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1025

.rawload(filename, width, height, bands, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load raw data from a file.

Parameters:

  • filename (String)

    Filename to load from

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • bands (Integer)

    Number of bands in image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :offset (guint64)

    Offset in bytes from start of file

  • :format (Vips::BandFormat)

    Pixel format in image

  • :interpretation (Vips::Interpretation)

    Pixel interpretation

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 931

.respond_to_missing?(name, include_all = false) ⇒ Boolean

Returns:

  • (Boolean)


216
217
218
219
220
221
# File 'lib/vips/image.rb', line 216

def self.respond_to_missing? name, include_all = false
  # respond to all vips operations by nickname
  return true if Vips.type_find("VipsOperation", name.to_s) != 0

  super
end

.sines(width, height, **opts) ⇒ Vips::Image

Make a 2d sine wave.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

  • :hfreq (Float)

    Horizontal spatial frequency

  • :vfreq (Float)

    Vertical spatial frequency

Returns:



# File 'lib/vips/methods.rb', line 664

.sum(im, **opts) ⇒ Vips::Image

Sum an array of images.

Parameters:

  • im (Array<Image>)

    Array of input images

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 79

.svgload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load svg with rsvg.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dpi (Float)

    Render at this DPI

  • :scale (Float)

    Scale output by this factor

  • :unlimited (Boolean)

    Allow SVG of any size

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1036

.svgload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load svg with rsvg.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dpi (Float)

    Render at this DPI

  • :scale (Float)

    Scale output by this factor

  • :unlimited (Boolean)

    Allow SVG of any size

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1050

.svgload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load svg from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dpi (Float)

    Render at this DPI

  • :scale (Float)

    Scale output by this factor

  • :unlimited (Boolean)

    Allow SVG of any size

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1064

.switch(tests, **opts) ⇒ Vips::Image

Find the index of the first non-zero pixel in tests.

Parameters:

  • tests (Array<Image>)

    Table of images to test

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 873

.system(cmd_format, **opts) ⇒ nil, Hash<Symbol => Object>

Run an external command.

Parameters:

  • cmd_format (String)

    Command to run

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :im (Array<Image>)

    Array of input images

  • :out_format (String)

    Format for output filename

  • :in_format (String)

    Format for input filename

  • :out (Vips::Image)

    Output Output image

  • :log (String)

    Output Command log

Returns:

  • (nil, Hash<Symbol => Object>)

    Hash of optional output items



# File 'lib/vips/methods.rb', line 4

.text(text, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Make a text image.

Parameters:

  • text (String)

    Text to render

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :font (String)

    Font to render with

  • :width (Integer)

    Maximum image width in pixels

  • :height (Integer)

    Maximum image height in pixels

  • :align (Vips::Align)

    Align on the low, centre or high edge

  • :justify (Boolean)

    Justify lines

  • :dpi (Integer)

    DPI to render at

  • :spacing (Integer)

    Line spacing

  • :fontfile (String)

    Load this font file

  • :rgba (Boolean)

    Enable RGBA output

  • :wrap (Vips::TextWrap)

    Wrap lines on word or character boundaries

  • :autofit_dpi (Integer)

    Output DPI selected by autofit

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 622

.thumbnail(filename, width, **opts) ⇒ Vips::Image

Generate thumbnail from file.

Parameters:

  • filename (String)

    Filename to read from

  • width (Integer)

    Size to this width

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :height (Integer)

    Size to this height

  • :size (Vips::Size)

    Only upsize, only downsize, or both

  • :no_rotate (Boolean)

    Don't use orientation tags to rotate image upright

  • :crop (Vips::Interesting)

    Reduce to fill target rectangle, then crop

  • :linear (Boolean)

    Reduce in linear light

  • :import_profile (String)

    Fallback import profile

  • :export_profile (String)

    Fallback export profile

  • :intent (Vips::Intent)

    Rendering intent

  • :fail_on (Vips::FailOn)

    Error level to fail on

Returns:



# File 'lib/vips/methods.rb', line 2325

.thumbnail_buffer(buffer, width, **opts) ⇒ Vips::Image

Generate thumbnail from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • width (Integer)

    Size to this width

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :option_string (String)

    Options that are passed on to the underlying loader

  • :height (Integer)

    Size to this height

  • :size (Vips::Size)

    Only upsize, only downsize, or both

  • :no_rotate (Boolean)

    Don't use orientation tags to rotate image upright

  • :crop (Vips::Interesting)

    Reduce to fill target rectangle, then crop

  • :linear (Boolean)

    Reduce in linear light

  • :import_profile (String)

    Fallback import profile

  • :export_profile (String)

    Fallback export profile

  • :intent (Vips::Intent)

    Rendering intent

  • :fail_on (Vips::FailOn)

    Error level to fail on

Returns:



# File 'lib/vips/methods.rb', line 2341

.thumbnail_source(source, width, **opts) ⇒ Vips::Image

Generate thumbnail from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • width (Integer)

    Size to this width

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :option_string (String)

    Options that are passed on to the underlying loader

  • :height (Integer)

    Size to this height

  • :size (Vips::Size)

    Only upsize, only downsize, or both

  • :no_rotate (Boolean)

    Don't use orientation tags to rotate image upright

  • :crop (Vips::Interesting)

    Reduce to fill target rectangle, then crop

  • :linear (Boolean)

    Reduce in linear light

  • :import_profile (String)

    Fallback import profile

  • :export_profile (String)

    Fallback export profile

  • :intent (Vips::Intent)

    Rendering intent

  • :fail_on (Vips::FailOn)

    Error level to fail on

Returns:



# File 'lib/vips/methods.rb', line 2373

.tiffload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load tiff from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :subifd (Integer)

    Subifd index

  • :n (Integer)

    Number of pages to load, -1 for all

  • :autorotate (Boolean)

    Rotate image using orientation tag

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1284

.tiffload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load tiff from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :subifd (Integer)

    Subifd index

  • :n (Integer)

    Number of pages to load, -1 for all

  • :autorotate (Boolean)

    Rotate image using orientation tag

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1299

.tiffload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load tiff from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :subifd (Integer)

    Subifd index

  • :n (Integer)

    Number of pages to load, -1 for all

  • :autorotate (Boolean)

    Rotate image using orientation tag

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1314

.tonelut(**opts) ⇒ Vips::Image

Build a look-up table.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :in_max (Integer)

    Size of LUT to build

  • :out_max (Integer)

    Maximum value in output LUT

  • :Lb (Float)

    Lowest value in output

  • :Lw (Float)

    Highest value in output

  • :Ps (Float)

    Position of shadow

  • :Pm (Float)

    Position of mid-tones

  • :Ph (Float)

    Position of highlights

  • :S (Float)

    Adjust shadows by this much

  • :M (Float)

    Adjust mid-tones by this much

  • :H (Float)

    Adjust highlights by this much

Returns:



# File 'lib/vips/methods.rb', line 823

.vipsload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load vips from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 948

.vipsload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load vips from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 959

.webpload(filename, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load webp from file.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :scale (Float)

    Factor to scale by

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1242

.webpload_buffer(buffer, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load webp from buffer.

Parameters:

  • buffer (VipsBlob)

    Buffer to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :scale (Float)

    Factor to scale by

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1256

.webpload_source(source, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Load webp from source.

Parameters:

  • source (Vips::Source)

    Source to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page (Integer)

    First page to load

  • :n (Integer)

    Number of pages to load, -1 for all

  • :scale (Float)

    Factor to scale by

  • :memory (Boolean)

    Force open via memory

  • :access (Vips::Access)

    Required access pattern for this file

  • :fail_on (Vips::FailOn)

    Error level to fail on

  • :revalidate (Boolean)

    Don't use a cached result for this operation

  • :flags (Vips::ForeignFlags)

    Output Flags for this file

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 1270

.worley(width, height, **opts) ⇒ Vips::Image

Make a worley noise image.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :cell_size (Integer)

    Size of Worley cells

  • :seed (Integer)

    Random number seed

Returns:



# File 'lib/vips/methods.rb', line 854

.xyz(width, height, **opts) ⇒ Vips::Image

Make an image where pixel values are coordinates.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :csize (Integer)

    Size of third dimension

  • :dsize (Integer)

    Size of fourth dimension

  • :esize (Integer)

    Size of fifth dimension

Returns:



# File 'lib/vips/methods.rb', line 594

.zone(width, height, **opts) ⇒ Vips::Image

Make a zone plate.

Parameters:

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output an unsigned char image

Returns:



# File 'lib/vips/methods.rb', line 656

Instance Method Details

#!Image

Equivalent to image ^ -1

Returns:

  • (Image)

    image with bits flipped



1100
1101
1102
# File 'lib/vips/image.rb', line 1100

def !
  self ^ -1
end

#!=(other) ⇒ Image

Compare inequality to nil, an image, constant or array.

Parameters:

  • other (nil, Image, Real, Array<Real>)

    test inequality to this

Returns:

  • (Image)

    result of inequality



1174
1175
1176
1177
1178
1179
1180
1181
# File 'lib/vips/image.rb', line 1174

def != other
  # for equality, we must allow tests against nil
  if other.nil?
    true
  else
    call_enum "relational", other, :noteq
  end
end

#%(other) ⇒ Image

Remainder after integer division with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    self modulo this

Returns:

  • (Image)

    result of modulo



1044
1045
1046
1047
# File 'lib/vips/image.rb', line 1044

def % other
  other.is_a?(Vips::Image) ?
      remainder(other) : remainder_const(other)
end

#&(other) ⇒ Image

Integer bitwise AND with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    bitwise AND with this

Returns:

  • (Image)

    result of bitwise AND



1085
1086
1087
# File 'lib/vips/image.rb', line 1085

def & other
  call_enum "boolean", other, :and
end

#*(other) ⇒ Image

Multiply an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    Thing to multiply by self

Returns:

  • (Image)

    result of multiplication



1026
1027
1028
1029
# File 'lib/vips/image.rb', line 1026

def * other
  other.is_a?(Vips::Image) ?
      multiply(other) : linear(other, 0)
end

#**(other) ⇒ Image

Raise to power of an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    self to the power of this

Returns:

  • (Image)

    result of power



1053
1054
1055
# File 'lib/vips/image.rb', line 1053

def ** other
  call_enum "math2", other, :pow
end

#+(other) ⇒ Image

Add an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    Thing to add to self

Returns:

  • (Image)

    result of addition



1008
1009
1010
1011
# File 'lib/vips/image.rb', line 1008

def + other
  other.is_a?(Vips::Image) ?
      add(other) : linear(1, other)
end

#+@Image

Returns image.

Returns:



1112
1113
1114
# File 'lib/vips/image.rb', line 1112

def +@
  self
end

#-(other) ⇒ Image

Subtract an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    Thing to subtract from self

Returns:

  • (Image)

    result of subtraction



1017
1018
1019
1020
# File 'lib/vips/image.rb', line 1017

def - other
  other.is_a?(Vips::Image) ?
      subtract(other) : linear(1, Image.smap(other) { |x| x * -1 })
end

#-@Image

Equivalent to image * -1

Returns:

  • (Image)

    negative of image



1119
1120
1121
# File 'lib/vips/image.rb', line 1119

def -@
  self * -1
end

#/(other) ⇒ Image

Divide an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    Thing to divide self by

Returns:

  • (Image)

    result of division



1035
1036
1037
1038
# File 'lib/vips/image.rb', line 1035

def / other
  other.is_a?(Vips::Image) ?
      divide(other) : linear(Image.smap(other) { |x| 1.0 / x }, 0)
end

#<(other) ⇒ Image

Relational less than with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    relational less than with this

Returns:

  • (Image)

    result of less than



1127
1128
1129
# File 'lib/vips/image.rb', line 1127

def < other
  call_enum "relational", other, :less
end

#<<(other) ⇒ Image

Integer left shift with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    shift left by this much

Returns:

  • (Image)

    result of left shift



1061
1062
1063
# File 'lib/vips/image.rb', line 1061

def << other
  call_enum "boolean", other, :lshift
end

#<=(other) ⇒ Image

Relational less than or equal to with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    relational less than or equal to with this

Returns:

  • (Image)

    result of less than or equal to



1136
1137
1138
# File 'lib/vips/image.rb', line 1136

def <= other
  call_enum "relational", other, :lesseq
end

#==(other) ⇒ Image

Compare equality to nil, an image, constant or array.

Parameters:

  • other (nil, Image, Real, Array<Real>)

    test equality to this

Returns:

  • (Image)

    result of equality



1161
1162
1163
1164
1165
1166
1167
1168
# File 'lib/vips/image.rb', line 1161

def == other
  # for equality, we must allow tests against nil
  if other.nil?
    false
  else
    call_enum "relational", other, :equal
  end
end

#>(other) ⇒ Image

Relational more than with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    relational more than with this

Returns:

  • (Image)

    result of more than



1144
1145
1146
# File 'lib/vips/image.rb', line 1144

def > other
  call_enum "relational", other, :more
end

#>=(other) ⇒ Image

Relational more than or equal to with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    relational more than or equal to with this

Returns:

  • (Image)

    result of more than or equal to



1153
1154
1155
# File 'lib/vips/image.rb', line 1153

def >= other
  call_enum "relational", other, :moreeq
end

#>>(other) ⇒ Image

Integer right shift with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    shift right by this much

Returns:

  • (Image)

    result of right shift



1069
1070
1071
# File 'lib/vips/image.rb', line 1069

def >> other
  call_enum "boolean", other, :rshift
end

#[](index) ⇒ Image

Fetch bands using a number or a range

Parameters:

  • index (Numeric, Range)

    extract these band(s)

Returns:

  • (Image)

    extracted band(s)



1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
# File 'lib/vips/image.rb', line 1187

def [] index
  if index.is_a? Range
    n = index.size
    extract_band index.begin, n: n
  elsif index.is_a? Numeric
    extract_band index
  else
    raise Vips::Error, "[] index is not range or numeric."
  end
end

#^(other) ⇒ Image

Integer bitwise EOR with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    bitwise EOR with this

Returns:

  • (Image)

    result of bitwise EOR



1093
1094
1095
# File 'lib/vips/image.rb', line 1093

def ^ other
  call_enum "boolean", other, :eor
end

#abs(**opts) ⇒ Vips::Image

Absolute value of an image.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 104

#acosImage

Return the inverse cosine of an image in degrees.

Returns:

  • (Image)

    inverse cosine of each pixel



1449
1450
1451
# File 'lib/vips/image.rb', line 1449

def acos
  math :acos
end

#acoshImage

Return the inverse hyperbolic cosine of an image in radians.

Returns:

  • (Image)

    inverse cosine of each pixel



1491
1492
1493
# File 'lib/vips/image.rb', line 1491

def acosh
  math :acosh
end

#add(right, **opts) ⇒ Vips::Image

Add two images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 15

#add_alphaImage

Append an alpha channel to an image.

Returns:

Raises:



974
975
976
977
978
979
980
# File 'lib/vips/image.rb', line 974

def add_alpha
  ptr = GenericPtr.new
  result = Vips.vips_addalpha self, ptr
  raise Vips::Error if result != 0

  Vips::Image.new ptr[:value]
end

#affine(matrix, **opts) ⇒ Vips::Image

Affine transform of an image.

Parameters:

  • matrix (Array<Double>)

    Transformation matrix

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

  • :oarea (Array<Integer>)

    Area of output to generate

  • :odx (Float)

    Horizontal output displacement

  • :ody (Float)

    Vertical output displacement

  • :idx (Float)

    Horizontal input displacement

  • :idy (Float)

    Vertical input displacement

  • :background (Array<Double>)

    Background value

  • :premultiplied (Boolean)

    Images have premultiplied alpha

  • :extend (Vips::Extend)

    How to generate the extra pixels

Returns:



# File 'lib/vips/methods.rb', line 2454

#asinImage

Return the inverse sine of an image in degrees.

Returns:

  • (Image)

    inverse sine of each pixel



1442
1443
1444
# File 'lib/vips/image.rb', line 1442

def asin
  math :asin
end

#asinhImage

Return the inverse hyperbolic sine of an image in radians.

Returns:

  • (Image)

    inverse sine of each pixel



1484
1485
1486
# File 'lib/vips/image.rb', line 1484

def asinh
  math :asinh
end

#atanImage

Return the inverse tangent of an image in degrees.

Returns:

  • (Image)

    inverse tangent of each pixel



1456
1457
1458
# File 'lib/vips/image.rb', line 1456

def atan
  math :atan
end

#atanhImage

Return the inverse hyperbolic tangent of an image in radians.

Returns:

  • (Image)

    inverse tangent of each pixel



1498
1499
1500
# File 'lib/vips/image.rb', line 1498

def atanh
  math :atanh
end

#autorot(**opts) ⇒ Vips::Image, Hash<Symbol => Object>

Autorotate image by exif tag.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :angle (Vips::Angle)

    Output Angle image was rotated by

  • :flip (Boolean)

    Output Whether the image was flipped or not

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 462

#avg(**opts) ⇒ Float

Find image average.

Parameters:

  • opts (Hash)

    Set of options

Returns:

  • (Float)

    Output value



# File 'lib/vips/methods.rb', line 159

#bandandImage

AND the bands of an image together

Returns:

  • (Image)

    all bands ANDed together



1258
1259
1260
# File 'lib/vips/image.rb', line 1258

def bandand
  bandbool :and
end

#bandbool(boolean, **opts) ⇒ Vips::Image

Boolean operation across image bands.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 430

#bandeorImage

EOR the bands of an image together

Returns:

  • (Image)

    all bands EORed together



1272
1273
1274
# File 'lib/vips/image.rb', line 1272

def bandeor
  bandbool :eor
end

#bandfold(**opts) ⇒ Vips::Image

Fold up x axis into bands.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :factor (Integer)

    Fold by this factor

Returns:



# File 'lib/vips/methods.rb', line 475

#bandjoin(other) ⇒ Image

Join a set of images bandwise.

Parameters:

  • other (Image, Array<Image>, Real, Array<Real>)

    bands to append

Returns:

  • (Image)

    many band image



1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
# File 'lib/vips/image.rb', line 1287

def bandjoin other
  unless other.is_a? Array
    other = [other]
  end

  # if other is just Numeric, we can use bandjoin_const
  not_all_real = !other.all? { |x| x.is_a? Numeric }

  if not_all_real
    Vips::Image.bandjoin([self] + other)
  else
    bandjoin_const other
  end
end

#bandjoin_const(c, **opts) ⇒ Vips::Image

Append a constant band to an image.

Parameters:

  • c (Array<Double>)

    Array of constants to add

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 412

#bandmean(**opts) ⇒ Vips::Image

Band-wise average.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 425

#bandorImage

OR the bands of an image together

Returns:

  • (Image)

    all bands ORed together



1265
1266
1267
# File 'lib/vips/image.rb', line 1265

def bandor
  bandbool :or
end

#bandsInteger

Get number of image bands.

Returns:

  • (Integer)

    number of image bands



875
876
877
# File 'lib/vips/image.rb', line 875

def bands
  Vips.vips_image_get_bands self
end

#bandsplitArray<Image>

Split an n-band image into n separate images.

Returns:

  • (Array<Image>)

    Array of n one-band images



1279
1280
1281
# File 'lib/vips/image.rb', line 1279

def bandsplit
  (0...bands).map { |i| extract_band i }
end

#bandunfold(**opts) ⇒ Vips::Image

Unfold image bands into x axis.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :factor (Integer)

    Unfold by this factor

Returns:



# File 'lib/vips/methods.rb', line 481

#boolean(right, boolean, **opts) ⇒ Vips::Image

Boolean operation on two images.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 52

#boolean_const(boolean, c, **opts) ⇒ Vips::Image

Boolean operations against a constant.

Parameters:

  • boolean (Vips::OperationBoolean)

    Boolean to perform

  • c (Array<Double>)

    Array of constants

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 133

#buildlut(**opts) ⇒ Vips::Image

Build a look-up table.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 812

#byteswap(**opts) ⇒ Vips::Image

Byteswap an image.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 549

#cache(**opts) ⇒ Vips::Image

Cache an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :max_tiles (Integer)

    Maximum number of tiles to cache

  • :tile_height (Integer)

    Tile height in pixels

  • :tile_width (Integer)

    Tile width in pixels

Returns:



# File 'lib/vips/methods.rb', line 307

#canny(**opts) ⇒ Vips::Image

Canny edge detector.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :sigma (Float)

    Sigma of Gaussian

  • :precision (Vips::Precision)

    Convolve with this precision

Returns:



# File 'lib/vips/methods.rb', line 2878

#case(cases, **opts) ⇒ Vips::Image

Use pixel values to pick cases from an array of images.

Parameters:

  • cases (Array<Image>)

    Array of case images

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2707

#cast(format, **opts) ⇒ Vips::Image

Cast an image.

Parameters:

  • format (Vips::BandFormat)

    Format to cast to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :shift (Boolean)

    Shift integer values up and down

Returns:



# File 'lib/vips/methods.rb', line 443

#ceilImage

Return the smallest integral value not less than the argument.

Returns:

  • (Image)

    ceil of image



1244
1245
1246
# File 'lib/vips/image.rb', line 1244

def ceil
  round :ceil
end

#CMC2LCh(**opts) ⇒ Vips::Image

Transform lch to cmc.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2537

#CMYK2XYZ(**opts) ⇒ Vips::Image

Transform cmyk to xyz.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2684

#codingSymbol

Get image coding.

Returns:

  • (Symbol)

    image coding



896
897
898
# File 'lib/vips/image.rb', line 896

def coding
  get "coding"
end

#colourspace(space, **opts) ⇒ Vips::Image

Convert to a new colorspace.

Parameters:

Options Hash (**opts):

Returns:



# File 'lib/vips/methods.rb', line 2503

#compass(mask, **opts) ⇒ Vips::Image

Convolve with rotating mask.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :times (Integer)

    Rotate and convolve this many times

  • :angle (Vips::Angle45)

    Rotate mask by this much between convolutions

  • :combine (Vips::Combine)

    Combine convolution results like this

  • :precision (Vips::Precision)

    Convolve with this precision

  • :layers (Integer)

    Use this many layers in approximation

  • :cluster (Integer)

    Cluster lines closer than this in approximation

Returns:



# File 'lib/vips/methods.rb', line 2804

#complex(cmplx, **opts) ⇒ Vips::Image

Perform a complex operation on an image.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 147

#complex2(right, cmplx, **opts) ⇒ Vips::Image

Complex binary operations on two images.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 66

#complexform(right, **opts) ⇒ Vips::Image

Form a complex image from two real images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 73

#complexget(get, **opts) ⇒ Vips::Image

Get a component from a complex image.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 153

#composite(overlay, mode, **opts) ⇒ Image

Composite a set of images with a set of blend modes.

Parameters:

  • overlay (Image, Array<Image>)

    images to composite

  • mode (BlendMode, Array<BlendMode>)

    blend modes to use

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :x (Array<Integer>)

    x positions of overlay

  • :y (Array<Integer>)

    y positions of overlay

  • :compositing_space (Vips::Interpretation)

    Composite images in this colour space

  • :premultiplied (Boolean)

    Images have premultiplied alpha

Returns:

  • (Image)

    blended image



1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
# File 'lib/vips/image.rb', line 1313

def composite overlay, mode, **opts
  unless overlay.is_a? Array
    overlay = [overlay]
  end
  unless mode.is_a? Array
    mode = [mode]
  end

  mode = mode.map do |x|
    GObject::GValue.from_nick Vips::BLEND_MODE_TYPE, x
  end

  Vips::Image.composite([self] + overlay, mode, **opts)
end

#composite2(overlay, mode, **opts) ⇒ Vips::Image

Blend a pair of images with a blend mode.

Parameters:

Options Hash (**opts):

  • :x (Integer)

    x position of overlay

  • :y (Integer)

    y position of overlay

  • :compositing_space (Vips::Interpretation)

    Composite images in this colour space

  • :premultiplied (Boolean)

    Images have premultiplied alpha

Returns:



# File 'lib/vips/methods.rb', line 565

#conjImage

Return the complex conjugate of an image.

The image can be complex, in which case the return image will also be complex, or must have an even number of bands, in which case pairs of bands are treated as (x, y) coordinates.

Returns:

  • (Image)

    complex conjugate



1406
1407
1408
# File 'lib/vips/image.rb', line 1406

def conj
  Image.run_cmplx(self) { |x| x.complex :conj }
end

#conv(mask, **opts) ⇒ Vips::Image

Convolution operation.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :precision (Vips::Precision)

    Convolve with this precision

  • :layers (Integer)

    Use this many layers in approximation

  • :cluster (Integer)

    Cluster lines closer than this in approximation

Returns:



# File 'lib/vips/methods.rb', line 2775

#conva(mask, **opts) ⇒ Vips::Image

Approximate integer convolution.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :layers (Integer)

    Use this many layers in approximation

  • :cluster (Integer)

    Cluster lines closer than this in approximation

Returns:



# File 'lib/vips/methods.rb', line 2784

#convasep(mask, **opts) ⇒ Vips::Image

Approximate separable integer convolution.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :layers (Integer)

    Use this many layers in approximation

Returns:



# File 'lib/vips/methods.rb', line 2825

#convf(mask, **opts) ⇒ Vips::Image

Float convolution operation.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2792

#convi(mask, **opts) ⇒ Vips::Image

Int convolution operation.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2798

#convsep(mask, **opts) ⇒ Vips::Image

Separable convolution operation.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :precision (Vips::Precision)

    Convolve with this precision

  • :layers (Integer)

    Use this many layers in approximation

  • :cluster (Integer)

    Cluster lines closer than this in approximation

Returns:



# File 'lib/vips/methods.rb', line 2816

#copy(**opts) ⇒ Vips::Image

Copy an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :width (Integer)

    Image width in pixels

  • :height (Integer)

    Image height in pixels

  • :bands (Integer)

    Number of bands in image

  • :format (Vips::BandFormat)

    Pixel format in image

  • :coding (Vips::Coding)

    Pixel coding

  • :interpretation (Vips::Interpretation)

    Pixel interpretation

  • :xres (Float)

    Horizontal resolution in pixels/mm

  • :yres (Float)

    Vertical resolution in pixels/mm

  • :xoffset (Integer)

    Horizontal offset of origin

  • :yoffset (Integer)

    Vertical offset of origin

Returns:



# File 'lib/vips/methods.rb', line 266

#copy_memoryImage

Copy an image to a memory area.

This can be useful for reusing results, but can obviously use a lot of memory for large images. See #tilecache for a way of caching parts of an image.

Returns:

  • (Image)

    new memory image



990
991
992
993
# File 'lib/vips/image.rb', line 990

def copy_memory
  new_image = Vips.vips_image_copy_memory self
  Vips::Image.new new_image
end

#cosImage

Return the cosine of an image in degrees.

Returns:

  • (Image)

    cosine of each pixel



1428
1429
1430
# File 'lib/vips/image.rb', line 1428

def cos
  math :cos
end

#coshImage

Return the hyperbolic cosine of an image in radians.

Returns:

  • (Image)

    cosine of each pixel



1470
1471
1472
# File 'lib/vips/image.rb', line 1470

def cosh
  math :cosh
end

#countlines(direction, **opts) ⇒ Float

Count lines in an image.

Parameters:

  • direction (Vips::Direction)

    Countlines left-right or up-down

  • opts (Hash)

    Set of options

Returns:

  • (Float)

    Number of lines



# File 'lib/vips/methods.rb', line 2928

#crop(left, top, width, height, **opts) ⇒ Vips::Image

Extract an area from an image.

Parameters:

  • left (Integer)

    Left edge of extract area

  • top (Integer)

    Top edge of extract area

  • width (Integer)

    Width of extract area

  • height (Integer)

    Height of extract area

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 385

#cross_phase(other) ⇒ Image

Calculate the cross phase of two images.

Parameters:

  • other (Image, Real, Array<Real>)

    cross phase with this

Returns:

  • (Image)

    cross phase



1414
1415
1416
# File 'lib/vips/image.rb', line 1414

def cross_phase other
  complex2 other, :cross_phase
end

#csvsave(filename, **opts) ⇒ nil

Save image to csv.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :separator (String)

    Separator characters

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1573

#csvsave_target(target, **opts) ⇒ nil

Save image to csv.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :separator (String)

    Separator characters

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1584

#dE00(right, **opts) ⇒ Vips::Image

Calculate de00.

Parameters:

  • right (Vips::Image)

    Right-hand input image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2645

#dE76(right, **opts) ⇒ Vips::Image

Calculate de76.

Parameters:

  • right (Vips::Image)

    Right-hand input image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2639

#dECMC(right, **opts) ⇒ Vips::Image

Calculate decmc.

Parameters:

  • right (Vips::Image)

    Right-hand input image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2651

#deviate(**opts) ⇒ Float

Find image standard deviation.

Parameters:

  • opts (Hash)

    Set of options

Returns:

  • (Float)

    Output value



# File 'lib/vips/methods.rb', line 186

#dilate(mask) ⇒ Image

Dilate with a structuring element.

The structuring element must be an array with 0 for black, 255 for white and 128 for don't care.

Parameters:

  • mask (Image, Array<Real>, Array<Array<Real>>)

    structuring element

Returns:

  • (Image)

    dilated image



1564
1565
1566
# File 'lib/vips/image.rb', line 1564

def dilate mask
  morph mask, :dilate
end

#divide(right, **opts) ⇒ Vips::Image

Divide two images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 33

#draw_circle(ink, cx, cy, radius, **opts) ⇒ Vips::Image

Draw a circle on an image.

Parameters:

  • ink (Array<Double>)

    Color for pixels

  • cx (Integer)

    Centre of draw_circle

  • cy (Integer)

    Centre of draw_circle

  • radius (Integer)

    Radius in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :fill (Boolean)

    Draw a solid object

Returns:



# File 'lib/vips/methods.rb', line 2976

#draw_flood(ink, x, y, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Flood-fill an area.

Parameters:

  • ink (Array<Double>)

    Color for pixels

  • x (Integer)

    DrawFlood start point

  • y (Integer)

    DrawFlood start point

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :test (Vips::Image)

    Test pixels in this image

  • :equal (Boolean)

    DrawFlood while equal to edge

  • :left (Integer)

    Output Left edge of modified area

  • :top (Integer)

    Output Top edge of modified area

  • :width (Integer)

    Output Width of modified area

  • :height (Integer)

    Output Height of modified area

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Image to draw on, Hash of optional output items



# File 'lib/vips/methods.rb', line 2986

#draw_image(sub, x, y, **opts) ⇒ Vips::Image

Paint an image into another image.

Parameters:

  • sub (Vips::Image)

    Sub-image to insert into main image

  • x (Integer)

    Draw image here

  • y (Integer)

    Draw image here

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :mode (Vips::CombineMode)

    Combining mode

Returns:



# File 'lib/vips/methods.rb', line 3000

#draw_line(ink, x1, y1, x2, y2, **opts) ⇒ Vips::Image

Draw a line on an image.

Parameters:

  • ink (Array<Double>)

    Color for pixels

  • x1 (Integer)

    Start of draw_line

  • y1 (Integer)

    Start of draw_line

  • x2 (Integer)

    End of draw_line

  • y2 (Integer)

    End of draw_line

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2966

#draw_mask(ink, mask, x, y, **opts) ⇒ Vips::Image

Draw a mask on an image.

Parameters:

  • ink (Array<Double>)

    Color for pixels

  • mask (Vips::Image)

    Mask of pixels to draw

  • x (Integer)

    Draw mask here

  • y (Integer)

    Draw mask here

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2957

#draw_point(ink, left, top, **opts) ⇒ Image

Draw a point on an image.

See #draw_rect.

Returns:

  • (Image)

    modified image



1000
1001
1002
# File 'lib/vips/image.rb', line 1000

def draw_point ink, left, top, **opts
  draw_rect ink, left, top, 1, 1, **opts
end

#draw_rect(ink, left, top, width, height, **opts) ⇒ Vips::Image

Paint a rectangle on an image.

Parameters:

  • ink (Array<Double>)

    Color for pixels

  • left (Integer)

    Rect to fill

  • top (Integer)

    Rect to fill

  • width (Integer)

    Rect to fill

  • height (Integer)

    Rect to fill

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :fill (Boolean)

    Draw a solid object

Returns:



# File 'lib/vips/methods.rb', line 2946

#draw_smudge(left, top, width, height, **opts) ⇒ Vips::Image

Blur a rectangle on an image.

Parameters:

  • left (Integer)

    Rect to fill

  • top (Integer)

    Rect to fill

  • width (Integer)

    Rect to fill

  • height (Integer)

    Rect to fill

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 3009

#dzsave(filename, **opts) ⇒ nil

Save image to deepzoom file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :imagename (String)

    Image name

  • :layout (Vips::ForeignDzLayout)

    Directory layout

  • :suffix (String)

    Filename suffix for tiles

  • :overlap (Integer)

    Tile overlap in pixels

  • :tile_size (Integer)

    Tile size in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :centre (Boolean)

    Center image in tile

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :angle (Vips::Angle)

    Rotate image during save

  • :container (Vips::ForeignDzContainer)

    Pyramid container type

  • :compression (Integer)

    ZIP deflate compression level

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :skip_blanks (Integer)

    Skip tiles which are nearly equal to the background

  • :id (String)

    Resource ID

  • :Q (Integer)

    Q factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1813

#dzsave_buffer(**opts) ⇒ VipsBlob

Save image to dz buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :imagename (String)

    Image name

  • :layout (Vips::ForeignDzLayout)

    Directory layout

  • :suffix (String)

    Filename suffix for tiles

  • :overlap (Integer)

    Tile overlap in pixels

  • :tile_size (Integer)

    Tile size in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :centre (Boolean)

    Center image in tile

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :angle (Vips::Angle)

    Rotate image during save

  • :container (Vips::ForeignDzContainer)

    Pyramid container type

  • :compression (Integer)

    ZIP deflate compression level

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :skip_blanks (Integer)

    Skip tiles which are nearly equal to the background

  • :id (String)

    Resource ID

  • :Q (Integer)

    Q factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1837

#dzsave_target(target, **opts) ⇒ nil

Save image to deepzoom target.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :imagename (String)

    Image name

  • :layout (Vips::ForeignDzLayout)

    Directory layout

  • :suffix (String)

    Filename suffix for tiles

  • :overlap (Integer)

    Tile overlap in pixels

  • :tile_size (Integer)

    Tile size in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :centre (Boolean)

    Center image in tile

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :angle (Vips::Angle)

    Rotate image during save

  • :container (Vips::ForeignDzContainer)

    Pyramid container type

  • :compression (Integer)

    ZIP deflate compression level

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :skip_blanks (Integer)

    Skip tiles which are nearly equal to the background

  • :id (String)

    Resource ID

  • :Q (Integer)

    Q factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1860

#embed(x, y, width, height, **opts) ⇒ Vips::Image

Embed an image in a larger image.

Parameters:

  • x (Integer)

    Left edge of input in output

  • y (Integer)

    Top edge of input in output

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :extend (Vips::Extend)

    How to generate the extra pixels

  • :background (Array<Double>)

    Color for background pixels

Returns:



# File 'lib/vips/methods.rb', line 315

#erode(mask) ⇒ Image

Erode with a structuring element.

The structuring element must be an array with 0 for black, 255 for white and 128 for don't care.

Parameters:

  • mask (Image, Array<Real>, Array<Array<Real>>)

    structuring element

Returns:

  • (Image)

    eroded image



1552
1553
1554
# File 'lib/vips/image.rb', line 1552

def erode mask
  morph mask, :erode
end

#expImage

Return e ** pixel.

Returns:



1519
1520
1521
# File 'lib/vips/image.rb', line 1519

def exp
  math :exp
end

#exp10Image

Return 10 ** pixel.

Returns:

  • (Image)

    10 ** pixel



1526
1527
1528
# File 'lib/vips/image.rb', line 1526

def exp10
  math :exp10
end

#extract_area(left, top, width, height, **opts) ⇒ Vips::Image

Extract an area from an image.

Parameters:

  • left (Integer)

    Left edge of extract area

  • top (Integer)

    Top edge of extract area

  • width (Integer)

    Width of extract area

  • height (Integer)

    Height of extract area

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 376

#extract_band(band, **opts) ⇒ Vips::Image

Extract band from an image.

Parameters:

  • band (Integer)

    Band to extract

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :n (Integer)

    Number of bands to extract

Returns:



# File 'lib/vips/methods.rb', line 405

#falsecolour(**opts) ⇒ Vips::Image

False-color an image.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 554

#fastcor(ref, **opts) ⇒ Vips::Image

Fast correlation.

Parameters:

  • ref (Vips::Image)

    Input reference image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2832

#filenameString

Get image filename, if any.

Returns:

  • (String)

    image filename



903
904
905
# File 'lib/vips/image.rb', line 903

def filename
  get "filename"
end

#fill_nearest(**opts) ⇒ Vips::Image, Hash<Symbol => Object>

Fill image zeros with nearest non-zero pixel.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :distance (Vips::Image)

    Output Distance to nearest non-zero pixel

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Value of nearest non-zero pixel, Hash of optional output items



# File 'lib/vips/methods.rb', line 2940

#find_trim(**opts) ⇒ Array<Integer, Integer, Integer, Integer>

Search an image for non-edge areas.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :threshold (Float)

    Object threshold

  • :background (Array<Double>)

    Color for background pixels

  • :line_art (Boolean)

    Enable line art mode

Returns:

  • (Array<Integer, Integer, Integer, Integer>)

    Left edge of image, Top edge of extract area, Width of extract area, Height of extract area



# File 'lib/vips/methods.rb', line 258

#fitssave(filename, **opts) ⇒ nil

Save image to fits file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2182

#flatten(**opts) ⇒ Vips::Image

Flatten alpha out of an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :background (Array<Double>)

    Background value

  • :max_alpha (Float)

    Maximum value of alpha channel

Returns:



# File 'lib/vips/methods.rb', line 487

#flip(direction, **opts) ⇒ Vips::Image

Flip an image.

Parameters:

  • direction (Vips::Direction)

    Direction to flip image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 336

#fliphorImage

Flip horizontally.

Returns:

  • (Image)

    image flipped horizontally



1533
1534
1535
# File 'lib/vips/image.rb', line 1533

def fliphor
  flip :horizontal
end

#flipverImage

Flip vertically.

Returns:

  • (Image)

    image flipped vertically



1540
1541
1542
# File 'lib/vips/image.rb', line 1540

def flipver
  flip :vertical
end

#float2rad(**opts) ⇒ Vips::Image

Transform float rgb to radiance coding.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2587

#floorImage

Return the largest integral value not greater than the argument.

Returns:

  • (Image)

    floor of image



1237
1238
1239
# File 'lib/vips/image.rb', line 1237

def floor
  round :floor
end

#formatSymbol

Get image format.

Returns:

  • (Symbol)

    image format



882
883
884
# File 'lib/vips/image.rb', line 882

def format
  get "format"
end

#freqmult(mask, **opts) ⇒ Vips::Image

Frequency-domain filtering.

Parameters:

  • mask (Vips::Image)

    Input mask image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2896

#fwfft(**opts) ⇒ Vips::Image

Forward fft.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2885

#gamma(**opts) ⇒ Vips::Image

Gamma an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :exponent (Float)

    Gamma factor

Returns:



# File 'lib/vips/methods.rb', line 559

#gaussblur(sigma, **opts) ⇒ Vips::Image

Gaussian blur.

Parameters:

  • sigma (Float)

    Sigma of Gaussian

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :min_ampl (Float)

    Minimum amplitude of Gaussian

  • :precision (Vips::Precision)

    Convolve with this precision

Returns:



# File 'lib/vips/methods.rb', line 2855

#get(name) ⇒ Object

Get a metadata item from an image. Ruby types are constructed automatically from the GValue, if possible.

For example, you can read the ICC profile from an image like this:

profile = image.get "icc-profile-data"

and profile will be an array containing the profile.

Parameters:

  • name (String)

    Metadata field to get

Returns:

Raises:



763
764
765
766
767
768
769
770
771
772
773
774
775
776
# File 'lib/vips/image.rb', line 763

def get name
  # with old libvips, we must fetch properties (as opposed to
  # metadata) via VipsObject
  unless Vips.at_least_libvips?(8, 5)
    return super if parent_get_typeof(name) != 0
  end

  gvalue = GObject::GValue.alloc
  raise Vips::Error if Vips.vips_image_get(self, name, gvalue) != 0
  result = gvalue.get
  gvalue.unset

  result
end

#get_fields[String]

Get the names of all fields on an image. Use this to loop over all image metadata.

Returns:

  • ([String])

    array of field names



782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
# File 'lib/vips/image.rb', line 782

def get_fields
  # vips_image_get_fields() was added in libvips 8.5
  return [] unless Vips.respond_to? :vips_image_get_fields

  array = Vips.vips_image_get_fields self

  names = []
  p = array
  until (q = p.read_pointer).null?
    names << q.read_string
    GLib.g_free q
    p += FFI::Type::POINTER.size
  end
  GLib.g_free array

  names
end

#get_typeof(name) ⇒ Integer

Get the GType of a metadata field. The result is 0 if no such field exists.

Parameters:

  • name (String)

    Metadata field to fetch

Returns:

  • (Integer)

    GType

See Also:



739
740
741
742
743
744
745
746
747
748
# File 'lib/vips/image.rb', line 739

def get_typeof name
  # on libvips before 8.5, property types must be searched first,
  # since vips_image_get_typeof returned built-in enums as int
  unless Vips.at_least_libvips?(8, 5)
    gtype = parent_get_typeof name
    return gtype if gtype != 0
  end

  Vips.vips_image_get_typeof self, name
end

#get_value(name) ⇒ Object

compatibility: old name for get



847
848
849
# File 'lib/vips/image.rb', line 847

def get_value name
  get name
end

#getpoint(x, y, **opts) ⇒ Array<Double>

Read a point from an image.

Parameters:

  • x (Integer)

    Point to read

  • y (Integer)

    Point to read

  • opts (Hash)

    Set of options

Returns:

  • (Array<Double>)

    Array of output values



# File 'lib/vips/methods.rb', line 251

#gifsave(filename, **opts) ⇒ nil

Save as gif.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dither (Float)

    Amount of dithering

  • :effort (Integer)

    Quantisation effort

  • :profile (String)

    Filename of ICC profile to embed

  • :bitdepth (Integer)

    Number of bits per pixel

  • :interframe_maxerror (Float)

    Maximum inter-frame error for transparency

  • :reuse (Boolean)

    Reuse palette from input

  • :interpalette_maxerror (Float)

    Maximum inter-palette error for palette reusage

  • :interlace (Boolean)

    Generate an interlaced (progressive) GIF

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1763

#gifsave_buffer(**opts) ⇒ VipsBlob

Save as gif.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dither (Float)

    Amount of dithering

  • :effort (Integer)

    Quantisation effort

  • :profile (String)

    Filename of ICC profile to embed

  • :bitdepth (Integer)

    Number of bits per pixel

  • :interframe_maxerror (Float)

    Maximum inter-frame error for transparency

  • :reuse (Boolean)

    Reuse palette from input

  • :interpalette_maxerror (Float)

    Maximum inter-palette error for palette reusage

  • :interlace (Boolean)

    Generate an interlaced (progressive) GIF

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1780

#gifsave_target(target, **opts) ⇒ nil

Save as gif.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :dither (Float)

    Amount of dithering

  • :effort (Integer)

    Quantisation effort

  • :profile (String)

    Filename of ICC profile to embed

  • :bitdepth (Integer)

    Number of bits per pixel

  • :interframe_maxerror (Float)

    Maximum inter-frame error for transparency

  • :reuse (Boolean)

    Reuse palette from input

  • :interpalette_maxerror (Float)

    Maximum inter-palette error for palette reusage

  • :interlace (Boolean)

    Generate an interlaced (progressive) GIF

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1796

#globalbalance(**opts) ⇒ Vips::Image

Global balance an image mosaic.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :gamma (Float)

    Image gamma

  • :int_output (Boolean)

    Integer output

Returns:



# File 'lib/vips/methods.rb', line 3092

#gravity(direction, width, height, **opts) ⇒ Vips::Image

Place an image within a larger image with a certain gravity.

Parameters:

  • direction (Vips::CompassDirection)

    Direction to place image within width/height

  • width (Integer)

    Image width in pixels

  • height (Integer)

    Image height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :extend (Vips::Extend)

    How to generate the extra pixels

  • :background (Array<Double>)

    Color for background pixels

Returns:



# File 'lib/vips/methods.rb', line 326

#grid(tile_height, across, down, **opts) ⇒ Vips::Image

Grid an image.

Parameters:

  • tile_height (Integer)

    Chop into tiles this high

  • across (Integer)

    Number of tiles across

  • down (Integer)

    Number of tiles down

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 507

#has_alpha?Boolean

Detect if image has an alpha channel

Returns:

  • (Boolean)

    true if image has an alpha channel.



964
965
966
# File 'lib/vips/image.rb', line 964

def has_alpha?
  Vips.vips_image_hasalpha(self) != 0
end

#heifsave(filename, **opts) ⇒ nil

Save image in heif format.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :bitdepth (Integer)

    Number of bits per pixel

  • :profile (String)

    Filename of ICC profile to embed

  • :lossless (Boolean)

    Enable lossless compression

  • :compression (Vips::ForeignHeifCompression)

    Compression format

  • :effort (Integer)

    CPU effort

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :encoder (Vips::ForeignHeifEncoder)

    Select encoder to use

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2202

#heifsave_buffer(**opts) ⇒ VipsBlob

Save image in heif format.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :bitdepth (Integer)

    Number of bits per pixel

  • :profile (String)

    Filename of ICC profile to embed

  • :lossless (Boolean)

    Enable lossless compression

  • :compression (Vips::ForeignHeifCompression)

    Compression format

  • :effort (Integer)

    CPU effort

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :encoder (Vips::ForeignHeifEncoder)

    Select encoder to use

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 2219

#heifsave_target(target, **opts) ⇒ nil

Save image in heif format.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :bitdepth (Integer)

    Number of bits per pixel

  • :profile (String)

    Filename of ICC profile to embed

  • :lossless (Boolean)

    Enable lossless compression

  • :compression (Vips::ForeignHeifCompression)

    Compression format

  • :effort (Integer)

    CPU effort

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :encoder (Vips::ForeignHeifEncoder)

    Select encoder to use

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2235

#heightInteger

Get image height, in pixels.

Returns:

  • (Integer)

    image height, in pixels



868
869
870
# File 'lib/vips/image.rb', line 868

def height
  Vips.vips_image_get_height self
end

#hist_cum(**opts) ⇒ Vips::Image

Form cumulative histogram.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2730

#hist_entropy(**opts) ⇒ Float

Estimate image entropy.

Parameters:

  • opts (Hash)

    Set of options

Returns:

  • (Float)

    Output value



# File 'lib/vips/methods.rb', line 2770

#hist_equal(**opts) ⇒ Vips::Image

Histogram equalisation.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :band (Integer)

    Equalise with this band

Returns:



# File 'lib/vips/methods.rb', line 2746

#hist_find(**opts) ⇒ Vips::Image

Find image histogram.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :band (Integer)

    Find histogram of band

Returns:



# File 'lib/vips/methods.rb', line 196

#hist_find_indexed(index, **opts) ⇒ Vips::Image

Find indexed image histogram.

Parameters:

  • index (Vips::Image)

    Index image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :combine (Vips::Combine)

    Combine bins like this

Returns:



# File 'lib/vips/methods.rb', line 208

#hist_find_ndim(**opts) ⇒ Vips::Image

Find n-dimensional image histogram.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :bins (Integer)

    Number of bins in each dimension

Returns:



# File 'lib/vips/methods.rb', line 202

#hist_ismonotonic(**opts) ⇒ Boolean

Test for monotonicity.

Parameters:

  • opts (Hash)

    Set of options

Returns:

  • (Boolean)

    true if in is monotonic



# File 'lib/vips/methods.rb', line 2765

#hist_local(width, height, **opts) ⇒ Vips::Image

Local histogram equalisation.

Parameters:

  • width (Integer)

    Window width in pixels

  • height (Integer)

    Window height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :max_slope (Integer)

    Maximum slope (CLAHE)

Returns:



# File 'lib/vips/methods.rb', line 2757

#hist_match(ref, **opts) ⇒ Vips::Image

Match two histograms.

Parameters:

  • ref (Vips::Image)

    Reference histogram

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2735

#hist_norm(**opts) ⇒ Vips::Image

Normalise histogram.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2741

#hist_plot(**opts) ⇒ Vips::Image

Plot histogram.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2752

#hough_circle(**opts) ⇒ Vips::Image

Find hough circle transform.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :scale (Integer)

    Scale down dimensions by this factor

  • :min_radius (Integer)

    Smallest radius to search for

  • :max_radius (Integer)

    Largest radius to search for

Returns:



# File 'lib/vips/methods.rb', line 222

#hough_line(**opts) ⇒ Vips::Image

Find hough line transform.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :width (Integer)

    Horizontal size of parameter space

  • :height (Integer)

    Vertical size of parameter space

Returns:



# File 'lib/vips/methods.rb', line 215

#HSV2sRGB(**opts) ⇒ Vips::Image

Transform hsv to srgb.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2602

#icc_export(**opts) ⇒ Vips::Image

Output to device with icc profile.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :pcs (Vips::PCS)

    Set Profile Connection Space

  • :intent (Vips::Intent)

    Rendering intent

  • :black_point_compensation (Boolean)

    Enable black point compensation

  • :output_profile (String)

    Filename to load output profile from

  • :depth (Integer)

    Output device space depth in bits

Returns:



# File 'lib/vips/methods.rb', line 2617

#icc_import(**opts) ⇒ Vips::Image

Import from device with icc profile.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :pcs (Vips::PCS)

    Set Profile Connection Space

  • :intent (Vips::Intent)

    Rendering intent

  • :black_point_compensation (Boolean)

    Enable black point compensation

  • :embedded (Boolean)

    Use embedded input profile, if available

  • :input_profile (String)

    Filename to load input profile from

Returns:



# File 'lib/vips/methods.rb', line 2607

#icc_transform(output_profile, **opts) ⇒ Vips::Image

Transform between devices with icc profiles.

Parameters:

  • output_profile (String)

    Filename to load output profile from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :pcs (Vips::PCS)

    Set Profile Connection Space

  • :intent (Vips::Intent)

    Rendering intent

  • :black_point_compensation (Boolean)

    Enable black point compensation

  • :embedded (Boolean)

    Use embedded input profile, if available

  • :input_profile (String)

    Filename to load input profile from

  • :depth (Integer)

    Output device space depth in bits

Returns:



# File 'lib/vips/methods.rb', line 2627

#ifthenelse(th, el, **opts) ⇒ Image

Select pixels from th if self is non-zero and from el if self is zero. Use the :blend option to fade smoothly between th and el.

Parameters:

  • th (Image, Real, Array<Real>)

    true values

  • el (Image, Real, Array<Real>)

    false values

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :blend (Boolean) — default: false

    Blend smoothly between th and el

Returns:

  • (Image)

    merged image



1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
# File 'lib/vips/image.rb', line 1598

def ifthenelse(th, el, **opts)
  match_image = [th, el, self].find { |x| x.is_a? Vips::Image }

  unless th.is_a? Vips::Image
    th = Operation.imageize match_image, th
  end
  unless el.is_a? Vips::Image
    el = Operation.imageize match_image, el
  end

  Vips::Operation.call "ifthenelse", [self, th, el], opts
end

#imagImage

Return the imaginary part of a complex image.

Returns:

  • (Image)

    imaginary part of complex image



1368
1369
1370
# File 'lib/vips/image.rb', line 1368

def imag
  complexget :imag
end

#insert(sub, x, y, **opts) ⇒ Vips::Image

Insert image @sub into @main at @x, @y.

Parameters:

  • sub (Vips::Image)

    Sub-image to insert into main image

  • x (Integer)

    Left edge of sub in main

  • y (Integer)

    Top edge of sub in main

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :expand (Boolean)

    Expand output to hold all of both inputs

  • :background (Array<Double>)

    Color for new pixels

Returns:



# File 'lib/vips/methods.rb', line 342

#inspectObject



194
195
196
# File 'lib/vips/image.rb', line 194

def inspect
  "#<Image #{width}x#{height} #{format}, #{bands} bands, #{interpretation}>"
end

#interpretationSymbol

Get image interpretation.

Returns:

  • (Symbol)

    image interpretation



889
890
891
# File 'lib/vips/image.rb', line 889

def interpretation
  get "interpretation"
end

#invert(**opts) ⇒ Vips::Image

Invert an image.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 85

#invertlut(**opts) ⇒ Vips::Image

Build an inverted look-up table.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :size (Integer)

    LUT size to generate

Returns:



# File 'lib/vips/methods.rb', line 817

#invfft(**opts) ⇒ Vips::Image

Inverse fft.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :real (Boolean)

    Output only the real part of the transform

Returns:



# File 'lib/vips/methods.rb', line 2890

#join(in2, direction, **opts) ⇒ Vips::Image

Join a pair of images.

Parameters:

  • in2 (Vips::Image)

    Second input image

  • direction (Vips::Direction)

    Join left-right or up-down

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :expand (Boolean)

    Expand output to hold all of both inputs

  • :shim (Integer)

    Pixels between images

  • :background (Array<Double>)

    Colour for new pixels

  • :align (Vips::Align)

    Align on the low, centre or high coordinate edge

Returns:



# File 'lib/vips/methods.rb', line 352

#jp2ksave(filename, **opts) ⇒ nil

Save image in jpeg2000 format.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Q factor

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1719

#jp2ksave_buffer(**opts) ⇒ VipsBlob

Save image in jpeg2000 format.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Q factor

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1734

#jp2ksave_target(target, **opts) ⇒ nil

Save image in jpeg2000 format.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Q factor

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1748

#jpegsave(filename, **opts) ⇒ nil

Save image to jpeg file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :profile (String)

    Filename of ICC profile to embed

  • :optimize_coding (Boolean)

    Compute optimal Huffman coding tables

  • :interlace (Boolean)

    Generate an interlaced (progressive) jpeg

  • :trellis_quant (Boolean)

    Apply trellis quantisation to each 8x8 block

  • :overshoot_deringing (Boolean)

    Apply overshooting to samples with extreme values

  • :optimize_scans (Boolean)

    Split spectrum of DCT coefficients into separate scans

  • :quant_table (Integer)

    Use predefined quantization table with given index

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :restart_interval (Integer)

    Add restart markers every specified number of mcu

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1937

#jpegsave_buffer(**opts) ⇒ VipsBlob

Save image to jpeg buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :profile (String)

    Filename of ICC profile to embed

  • :optimize_coding (Boolean)

    Compute optimal Huffman coding tables

  • :interlace (Boolean)

    Generate an interlaced (progressive) jpeg

  • :trellis_quant (Boolean)

    Apply trellis quantisation to each 8x8 block

  • :overshoot_deringing (Boolean)

    Apply overshooting to samples with extreme values

  • :optimize_scans (Boolean)

    Split spectrum of DCT coefficients into separate scans

  • :quant_table (Integer)

    Use predefined quantization table with given index

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :restart_interval (Integer)

    Add restart markers every specified number of mcu

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1956

#jpegsave_mime(**opts) ⇒ nil

Save image to jpeg mime.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :profile (String)

    Filename of ICC profile to embed

  • :optimize_coding (Boolean)

    Compute optimal Huffman coding tables

  • :interlace (Boolean)

    Generate an interlaced (progressive) jpeg

  • :trellis_quant (Boolean)

    Apply trellis quantisation to each 8x8 block

  • :overshoot_deringing (Boolean)

    Apply overshooting to samples with extreme values

  • :optimize_scans (Boolean)

    Split spectrum of DCT coefficients into separate scans

  • :quant_table (Integer)

    Use predefined quantization table with given index

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :restart_interval (Integer)

    Add restart markers every specified number of mcu

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1993

#jpegsave_target(target, **opts) ⇒ nil

Save image to jpeg target.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :profile (String)

    Filename of ICC profile to embed

  • :optimize_coding (Boolean)

    Compute optimal Huffman coding tables

  • :interlace (Boolean)

    Generate an interlaced (progressive) jpeg

  • :trellis_quant (Boolean)

    Apply trellis quantisation to each 8x8 block

  • :overshoot_deringing (Boolean)

    Apply overshooting to samples with extreme values

  • :optimize_scans (Boolean)

    Split spectrum of DCT coefficients into separate scans

  • :quant_table (Integer)

    Use predefined quantization table with given index

  • :subsample_mode (Vips::ForeignSubsample)

    Select chroma subsample operation mode

  • :restart_interval (Integer)

    Add restart markers every specified number of mcu

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1974

#jxlsave(filename, **opts) ⇒ nil

Save image in jpeg-xl format.

Parameters:

  • filename (String)

    Filename to load from

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tier (Integer)

    Decode speed tier

  • :distance (Float)

    Target butteraugli distance

  • :profile (String)

    Filename of ICC profile to embed

  • :effort (Integer)

    Encoding effort

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Quality factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2252

#jxlsave_buffer(**opts) ⇒ VipsBlob

Save image in jpeg-xl format.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tier (Integer)

    Decode speed tier

  • :distance (Float)

    Target butteraugli distance

  • :profile (String)

    Filename of ICC profile to embed

  • :effort (Integer)

    Encoding effort

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Quality factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 2267

#jxlsave_target(target, **opts) ⇒ nil

Save image in jpeg-xl format.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tier (Integer)

    Decode speed tier

  • :distance (Float)

    Target butteraugli distance

  • :profile (String)

    Filename of ICC profile to embed

  • :effort (Integer)

    Encoding effort

  • :lossless (Boolean)

    Enable lossless compression

  • :Q (Integer)

    Quality factor

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2281

#Lab2LabQ(**opts) ⇒ Vips::Image

Transform float lab to labq coding.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2557

#Lab2LabS(**opts) ⇒ Vips::Image

Transform float lab to signed short.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2577

#Lab2LCh(**opts) ⇒ Vips::Image

Transform lab to lch.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2522

#Lab2XYZ(**opts) ⇒ Vips::Image

Transform cielab to xyz.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :temp (Array<Double>)

    Color temperature

Returns:



# File 'lib/vips/methods.rb', line 2510

#labelregions(**opts) ⇒ Vips::Image, Hash<Symbol => Object>

Label regions in an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :segments (Integer)

    Output Number of discrete contiguous regions

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Mask of region labels, Hash of optional output items



# File 'lib/vips/methods.rb', line 2934

#LabQ2Lab(**opts) ⇒ Vips::Image

Unpack a labq image to float lab.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2552

#LabQ2LabS(**opts) ⇒ Vips::Image

Unpack a labq image to short lab.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2562

#LabQ2sRGB(**opts) ⇒ Vips::Image

Convert a labq image to srgb.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2592

#LabS2Lab(**opts) ⇒ Vips::Image

Transform signed short lab to float.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2572

#LabS2LabQ(**opts) ⇒ Vips::Image

Transform short lab to labq coding.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2567

#LCh2CMC(**opts) ⇒ Vips::Image

Transform lch to cmc.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2532

#LCh2Lab(**opts) ⇒ Vips::Image

Transform lch to lab.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2527

#linear(a, b, **opts) ⇒ Vips::Image

Calculate (a * in + b).

Parameters:

  • a (Array<Double>)

    Multiply by this

  • b (Array<Double>)

    Add this

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :uchar (Boolean)

    Output should be uchar

Returns:



# File 'lib/vips/methods.rb', line 90

#linecache(**opts) ⇒ Vips::Image

Cache an image as a set of lines.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_height (Integer)

    Tile height in pixels

  • :access (Vips::Access)

    Expected access pattern

  • :threaded (Boolean)

    Allow threaded access

  • :persistent (Boolean)

    Keep cache between evaluations

Returns:



# File 'lib/vips/methods.rb', line 292

#logImage

Return the natural log of an image.

Returns:

  • (Image)

    natural log of each pixel



1505
1506
1507
# File 'lib/vips/image.rb', line 1505

def log
  math :log
end

#log10Image

Return the log base 10 of an image.

Returns:

  • (Image)

    base 10 log of each pixel



1512
1513
1514
# File 'lib/vips/image.rb', line 1512

def log10
  math :log10
end

#magicksave(filename, **opts) ⇒ nil

Save file with imagemagick.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :format (String)

    Format to save in

  • :quality (Integer)

    Quality to use

  • :optimize_gif_frames (Boolean)

    Apply GIF frames optimization

  • :optimize_gif_transparency (Boolean)

    Apply GIF transparency optimization

  • :bitdepth (Integer)

    Number of bits per pixel

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2296

#magicksave_buffer(**opts) ⇒ VipsBlob

Save image to magick buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :format (String)

    Format to save in

  • :quality (Integer)

    Quality to use

  • :optimize_gif_frames (Boolean)

    Apply GIF frames optimization

  • :optimize_gif_transparency (Boolean)

    Apply GIF transparency optimization

  • :bitdepth (Integer)

    Number of bits per pixel

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 2311

#mapim(index, **opts) ⇒ Vips::Image

Resample with a map image.

Parameters:

  • index (Vips::Image)

    Index pixels with this

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

  • :background (Array<Double>)

    Background value

  • :premultiplied (Boolean)

    Images have premultiplied alpha

  • :extend (Vips::Extend)

    How to generate the extra pixels

Returns:



# File 'lib/vips/methods.rb', line 2390

#maplut(lut, **opts) ⇒ Vips::Image

Map an image though a lut.

Parameters:

  • lut (Vips::Image)

    Look-up table image

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :band (Integer)

    Apply one-band lut to this band of in

Returns:



# File 'lib/vips/methods.rb', line 2700

#match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, **opts) ⇒ Vips::Image

First-order match of two images.

Parameters:

  • sec (Vips::Image)

    Secondary image

  • xr1 (Integer)

    Position of first reference tie-point

  • yr1 (Integer)

    Position of first reference tie-point

  • xs1 (Integer)

    Position of first secondary tie-point

  • ys1 (Integer)

    Position of first secondary tie-point

  • xr2 (Integer)

    Position of second reference tie-point

  • yr2 (Integer)

    Position of second reference tie-point

  • xs2 (Integer)

    Position of second secondary tie-point

  • ys2 (Integer)

    Position of second secondary tie-point

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :hwindow (Integer)

    Half window size

  • :harea (Integer)

    Half area size

  • :search (Boolean)

    Search to improve tie-points

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

Returns:



# File 'lib/vips/methods.rb', line 3074

#math(math, **opts) ⇒ Vips::Image

Apply a math operation to an image.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 98

#math2(right, math2, **opts) ⇒ Vips::Image

Binary math operations.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 59

#math2_const(math2, c, **opts) ⇒ Vips::Image

Binary math operations with a constant.

Parameters:

  • math2 (Vips::OperationMath2)

    Math to perform

  • c (Array<Double>)

    Array of constants

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 140

#matrixinvert(**opts) ⇒ Vips::Image

Invert an matrix.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 3069

#matrixprint(**opts) ⇒ nil

Print matrix.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1615

#matrixsave(filename, **opts) ⇒ nil

Save image to matrix.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1595

#matrixsave_target(target, **opts) ⇒ nil

Save image to matrix.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1605

#max(**opts) ⇒ Float, Hash<Symbol => Object>

Find image maximum.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :size (Integer)

    Number of maximum values to find

  • :x (Integer)

    Output Horizontal position of maximum

  • :y (Integer)

    Output Vertical position of maximum

  • :out_array (Array<Double>)

    Output Array of output values

  • :x_array (Array<Integer>)

    Output Array of horizontal positions

  • :y_array (Array<Integer>)

    Output Array of vertical positions

Returns:

  • (Float, Hash<Symbol => Object>)

    Output value, Hash of optional output items



# File 'lib/vips/methods.rb', line 175

#maxposReal

Return the coordinates of the image maximum.

Returns:

  • (Real, Real, Real)

    maximum value, x coordinate of maximum, y coordinate of maximum



1332
1333
1334
1335
1336
1337
# File 'lib/vips/image.rb', line 1332

def maxpos
  v, opts = max x: true, y: true
  x = opts["x"]
  y = opts["y"]
  [v, x, y]
end

#measure(h, v, **opts) ⇒ Vips::Image

Measure a set of patches on a color chart.

Parameters:

  • h (Integer)

    Number of patches across chart

  • v (Integer)

    Number of patches down chart

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :left (Integer)

    Left edge of extract area

  • :top (Integer)

    Top edge of extract area

  • :width (Integer)

    Width of extract area

  • :height (Integer)

    Height of extract area

Returns:



# File 'lib/vips/methods.rb', line 240

#median(size = 3) ⇒ Image

a median filter

Parameters:

  • size (Integer) (defaults to: 3)

    size of filter window

Returns:

  • (Image)

    result of median filter



1354
1355
1356
# File 'lib/vips/image.rb', line 1354

def median size = 3
  rank size, size, size**2 / 2
end

#merge(sec, direction, dx, dy, **opts) ⇒ Vips::Image

Merge two images.

Parameters:

  • sec (Vips::Image)

    Secondary image

  • direction (Vips::Direction)

    Horizontal or vertical merge

  • dx (Integer)

    Horizontal displacement from sec to ref

  • dy (Integer)

    Vertical displacement from sec to ref

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :mblend (Integer)

    Maximum blend size

Returns:



# File 'lib/vips/methods.rb', line 3018

#min(**opts) ⇒ Float, Hash<Symbol => Object>

Find image minimum.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :size (Integer)

    Number of minimum values to find

  • :x (Integer)

    Output Horizontal position of minimum

  • :y (Integer)

    Output Vertical position of minimum

  • :out_array (Array<Double>)

    Output Array of output values

  • :x_array (Array<Integer>)

    Output Array of horizontal positions

  • :y_array (Array<Integer>)

    Output Array of vertical positions

Returns:

  • (Float, Hash<Symbol => Object>)

    Output value, Hash of optional output items



# File 'lib/vips/methods.rb', line 164

#minposReal

Return the coordinates of the image minimum.

Returns:

  • (Real, Real, Real)

    minimum value, x coordinate of minimum, y coordinate of minimum



1343
1344
1345
1346
1347
1348
# File 'lib/vips/image.rb', line 1343

def minpos
  v, opts = min x: true, y: true
  x = opts["x"]
  y = opts["y"]
  [v, x, y]
end

#morph(mask, morph, **opts) ⇒ Vips::Image

Morphology operation.

Parameters:

  • mask (Vips::Image)

    Input matrix image

  • morph (Vips::OperationMorphology)

    Morphological operation to perform

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2913

#mosaic(sec, direction, xref, yref, xsec, ysec, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Mosaic two images.

Parameters:

  • sec (Vips::Image)

    Secondary image

  • direction (Vips::Direction)

    Horizontal or vertical mosaic

  • xref (Integer)

    Position of reference tie-point

  • yref (Integer)

    Position of reference tie-point

  • xsec (Integer)

    Position of secondary tie-point

  • ysec (Integer)

    Position of secondary tie-point

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :hwindow (Integer)

    Half window size

  • :harea (Integer)

    Half area size

  • :mblend (Integer)

    Maximum blend size

  • :bandno (Integer)

    Band to search for features on

  • :dx0 (Integer)

    Output Detected integer offset

  • :dy0 (Integer)

    Output Detected integer offset

  • :scale1 (Float)

    Output Detected scale

  • :angle1 (Float)

    Output Detected rotation

  • :dy1 (Float)

    Output Detected first-order displacement

  • :dx1 (Float)

    Output Detected first-order displacement

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 3028

#mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, **opts) ⇒ Vips::Image

First-order mosaic of two images.

Parameters:

  • sec (Vips::Image)

    Secondary image

  • direction (Vips::Direction)

    Horizontal or vertical mosaic

  • xr1 (Integer)

    Position of first reference tie-point

  • yr1 (Integer)

    Position of first reference tie-point

  • xs1 (Integer)

    Position of first secondary tie-point

  • ys1 (Integer)

    Position of first secondary tie-point

  • xr2 (Integer)

    Position of second reference tie-point

  • yr2 (Integer)

    Position of second reference tie-point

  • xs2 (Integer)

    Position of second secondary tie-point

  • ys2 (Integer)

    Position of second secondary tie-point

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :hwindow (Integer)

    Half window size

  • :harea (Integer)

    Half area size

  • :search (Boolean)

    Search to improve tie-points

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

  • :mblend (Integer)

    Maximum blend size

Returns:



# File 'lib/vips/methods.rb', line 3049

#msb(**opts) ⇒ Vips::Image

Pick most-significant byte from an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :band (Integer)

    Band to msb

Returns:



# File 'lib/vips/methods.rb', line 543

#multiply(right, **opts) ⇒ Vips::Image

Multiply two images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 27

#mutate {|mutable| ... } ⇒ Object

Mutate an image with a block. Inside the block, you can call methods which modify the image, such as setting or removing metadata, or modifying pixels.

For example:

image = image.mutate do |x|
  (0 ... 1).step(0.01) do |i|
    x.draw_line! 255, x.width * i, 0, 0, x.height * (1 - i)
  end
end

See MutableImage.

Yields:

  • (mutable)


815
816
817
818
819
# File 'lib/vips/image.rb', line 815

def mutate
  mutable = Vips::MutableImage.new self
  yield mutable
  mutable.image
end

#new_from_image(value) ⇒ Image

A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

You can pass an array to make a many-band image, or a single value to make a one-band image.

Parameters:

  • value (Real, Array<Real>)

    value to put in each pixel

Returns:

  • (Image)

    constant image



555
556
557
558
559
560
# File 'lib/vips/image.rb', line 555

def new_from_image value
  pixel = (Vips::Image.black(1, 1) + value).cast(format)
  image = pixel.embed 0, 0, width, height, extend: :copy
  image.copy interpretation: interpretation, xres: xres, yres: yres,
    xoffset: xoffset, yoffset: yoffset
end

#niftisave(filename, **opts) ⇒ nil

Save image to nifti file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2192

#offsetFloat

Get offset metadata.

Returns:

  • (Float)

    image offset



947
948
949
950
951
# File 'lib/vips/image.rb', line 947

def offset
  return 0 if get_typeof("offset") == 0

  get "offset"
end

#parent_get_typeofObject



79
# File 'lib/vips/image.rb', line 79

alias_method :parent_get_typeof, :get_typeof

#percent(percent, **opts) ⇒ Integer

Find threshold for percent of pixels.

Parameters:

  • percent (Float)

    Percent of pixels

  • opts (Hash)

    Set of options

Returns:

  • (Integer)

    Threshold above which lie percent of pixels



# File 'lib/vips/methods.rb', line 2713

#phasecor(in2, **opts) ⇒ Vips::Image

Calculate phase correlation.

Parameters:

  • in2 (Vips::Image)

    Second input image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2907

#pngsave(filename, **opts) ⇒ nil

Save image to png file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Integer)

    Compression factor

  • :interlace (Boolean)

    Interlace image

  • :profile (String)

    Filename of ICC profile to embed

  • :filter (Vips::ForeignPngFilter)

    libpng row filter flag(s)

  • :palette (Boolean)

    Quantise to 8bpp palette

  • :Q (Integer)

    Quantisation quality

  • :dither (Float)

    Amount of dithering

  • :bitdepth (Integer)

    Write as a 1, 2, 4, 8 or 16 bit image

  • :effort (Integer)

    Quantisation CPU effort

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1884

#pngsave_buffer(**opts) ⇒ VipsBlob

Save image to png buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Integer)

    Compression factor

  • :interlace (Boolean)

    Interlace image

  • :profile (String)

    Filename of ICC profile to embed

  • :filter (Vips::ForeignPngFilter)

    libpng row filter flag(s)

  • :palette (Boolean)

    Quantise to 8bpp palette

  • :Q (Integer)

    Quantisation quality

  • :dither (Float)

    Amount of dithering

  • :bitdepth (Integer)

    Write as a 1, 2, 4, 8 or 16 bit image

  • :effort (Integer)

    Quantisation CPU effort

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1902

#pngsave_target(target, **opts) ⇒ nil

Save image to target as png.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Integer)

    Compression factor

  • :interlace (Boolean)

    Interlace image

  • :profile (String)

    Filename of ICC profile to embed

  • :filter (Vips::ForeignPngFilter)

    libpng row filter flag(s)

  • :palette (Boolean)

    Quantise to 8bpp palette

  • :Q (Integer)

    Quantisation quality

  • :dither (Float)

    Amount of dithering

  • :bitdepth (Integer)

    Write as a 1, 2, 4, 8 or 16 bit image

  • :effort (Integer)

    Quantisation CPU effort

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1919

#polarImage

Return an image with rectangular pixels converted to polar.

The image can be complex, in which case the return image will also be complex, or must have an even number of bands, in which case pairs of bands are treated as (x, y) coordinates.

Returns:

  • (Image)

    image converted to polar coordinates

See Also:



1381
1382
1383
# File 'lib/vips/image.rb', line 1381

def polar
  Image.run_cmplx(self) { |x| x.complex :polar }
end

#ppmsave(filename, **opts) ⇒ nil

Save image to ppm file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :format (Vips::ForeignPpmFormat)

    Format to save in

  • :ascii (Boolean)

    Save as ascii

  • :profile (String)

    Filename of ICC profile to embed

  • :bitdepth (Integer)

    Set to 1 to write as a 1 bit image

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1664

#ppmsave_target(target, **opts) ⇒ nil

Save to ppm.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :format (Vips::ForeignPpmFormat)

    Format to save in

  • :ascii (Boolean)

    Save as ascii

  • :profile (String)

    Filename of ICC profile to embed

  • :bitdepth (Integer)

    Set to 1 to write as a 1 bit image

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1677

#premultiply(**opts) ⇒ Vips::Image

Premultiply image alpha.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :max_alpha (Float)

    Maximum value of alpha channel

Returns:



# File 'lib/vips/methods.rb', line 494

#prewitt(**opts) ⇒ Vips::Image

Prewitt edge detector.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2873

#profile(**opts) ⇒ Array<Vips::Image, Vips::Image>

Find image profiles.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 235

#project(**opts) ⇒ Array<Vips::Image, Vips::Image>

Find image projections.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 230

#quadratic(coeff, **opts) ⇒ Vips::Image

Resample an image with a quadratic transform.

Parameters:

  • coeff (Vips::Image)

    Coefficient matrix

  • opts (Hash)

    Set of options

Options Hash (**opts):

Returns:



# File 'lib/vips/methods.rb', line 2447

#rad2float(**opts) ⇒ Vips::Image

Unpack radiance coding to float rgb.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2582

#radsave(filename, **opts) ⇒ nil

Save image to radiance file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1690

#radsave_buffer(**opts) ⇒ VipsBlob

Save image to radiance buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 1700

#radsave_target(target, **opts) ⇒ nil

Save image to radiance target.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1709

#rank(width, height, index, **opts) ⇒ Vips::Image

Rank filter.

Parameters:

  • width (Integer)

    Window width in pixels

  • height (Integer)

    Window height in pixels

  • index (Integer)

    Select pixel at index

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2920

#rawsave(filename, **opts) ⇒ nil

Save image to raw file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1624

#rawsave_fd(fd, **opts) ⇒ nil

Write raw image to file descriptor.

Parameters:

  • fd (Integer)

    File descriptor to write to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1634

#realImage

Return the real part of a complex image.

Returns:

  • (Image)

    real part of complex image



1361
1362
1363
# File 'lib/vips/image.rb', line 1361

def real
  complexget :real
end

#recomb(m, **opts) ⇒ Vips::Image

Linear recombination with matrix.

Parameters:

  • m (Vips::Image)

    Matrix of coefficients

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 469

#rectImage

Return an image with polar pixels converted to rectangular.

The image can be complex, in which case the return image will also be complex, or must have an even number of bands, in which case pairs of bands are treated as (x, y) coordinates.

Returns:

  • (Image)

    image converted to rectangular coordinates

See Also:



1394
1395
1396
# File 'lib/vips/image.rb', line 1394

def rect
  Image.run_cmplx(self) { |x| x.complex :rect }
end

#reduce(hshrink, vshrink, **opts) ⇒ Vips::Image

Reduce an image.

Parameters:

  • hshrink (Float)

    Horizontal shrink factor

  • vshrink (Float)

    Vertical shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :kernel (Vips::Kernel)

    Resampling kernel

  • :gap (Float)

    Reducing gap

Returns:



# File 'lib/vips/methods.rb', line 2438

#reduceh(hshrink, **opts) ⇒ Vips::Image

Shrink an image horizontally.

Parameters:

  • hshrink (Float)

    Horizontal shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :kernel (Vips::Kernel)

    Resampling kernel

  • :gap (Float)

    Reducing gap

Returns:



# File 'lib/vips/methods.rb', line 2422

#reducev(vshrink, **opts) ⇒ Vips::Image

Shrink an image vertically.

Parameters:

  • vshrink (Float)

    Vertical shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :kernel (Vips::Kernel)

    Resampling kernel

  • :gap (Float)

    Reducing gap

Returns:



# File 'lib/vips/methods.rb', line 2430

#relational(right, relational, **opts) ⇒ Vips::Image

Relational operation on two images.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 39

#relational_const(relational, c, **opts) ⇒ Vips::Image

Relational operations against a constant.

Parameters:

  • relational (Vips::OperationRelational)

    Relational to perform

  • c (Array<Double>)

    Array of constants

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 120

#remainder(right, **opts) ⇒ Vips::Image

Remainder after integer division of two images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 46

#remainder_const(c, **opts) ⇒ Vips::Image

Remainder after integer division of an image and a constant.

Parameters:

  • c (Array<Double>)

    Array of constants

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 127

#remove(name) ⇒ Object

This method is deprecated.

Please use MutableImage#remove! instead.



842
843
844
# File 'lib/vips/image.rb', line 842

def remove name
  Vips.vips_image_remove self, name
end

#replicate(across, down, **opts) ⇒ Vips::Image

Replicate an image.

Parameters:

  • across (Integer)

    Repeat this many times horizontally

  • down (Integer)

    Repeat this many times vertically

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 436

#resize(scale, **opts) ⇒ Vips::Image

Resize an image.

Parameters:

  • scale (Float)

    Scale image by this factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :kernel (Vips::Kernel)

    Resampling kernel

  • :gap (Float)

    Reducing gap

  • :vscale (Float)

    Vertical scale image by this factor

Returns:



# File 'lib/vips/methods.rb', line 2494

#respond_to?(name, include_all = false) ⇒ Boolean

Returns:

  • (Boolean)


198
199
200
201
202
203
204
205
206
207
# File 'lib/vips/image.rb', line 198

def respond_to? name, include_all = false
  # To support keyword args, we need to tell Ruby that final image
  # arguments cannot be hashes of keywords.
  #
  # https://makandracards.com/makandra/
  #   36013-heads-up-ruby-implicitly-converts-a-hash-to-keyword-arguments
  return false if name == :to_hash

  super
end

#respond_to_missing?(name, include_all = false) ⇒ Boolean

Returns:

  • (Boolean)


209
210
211
212
213
214
# File 'lib/vips/image.rb', line 209

def respond_to_missing? name, include_all = false
  # respond to all vips operations by nickname
  return true if Vips.type_find("VipsOperation", name.to_s) != 0

  super
end

#rintImage

Return the nearest integral value.

Returns:

  • (Image)

    rint of image



1251
1252
1253
# File 'lib/vips/image.rb', line 1251

def rint
  round :rint
end

#rot(angle, **opts) ⇒ Vips::Image

Rotate an image.

Parameters:

  • angle (Vips::Angle)

    Angle to rotate image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 450

#rot180Image

Rotate by 180 degrees clockwise.

Returns:

  • (Image)

    rotated image



1578
1579
1580
# File 'lib/vips/image.rb', line 1578

def rot180
  rot :d180
end

#rot270Image

Rotate by 270 degrees clockwise.

Returns:

  • (Image)

    rotated image



1585
1586
1587
# File 'lib/vips/image.rb', line 1585

def rot270
  rot :d270
end

#rot45(**opts) ⇒ Vips::Image

Rotate an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

Returns:



# File 'lib/vips/methods.rb', line 456

#rot90Image

Rotate by 90 degrees clockwise.

Returns:

  • (Image)

    rotated image



1571
1572
1573
# File 'lib/vips/image.rb', line 1571

def rot90
  rot :d90
end

#rotate(angle, **opts) ⇒ Vips::Image

Rotate an image by a number of degrees.

Parameters:

  • angle (Float)

    Rotate anticlockwise by this many degrees

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

  • :background (Array<Double>)

    Background value

  • :odx (Float)

    Horizontal output displacement

  • :ody (Float)

    Vertical output displacement

  • :idx (Float)

    Horizontal input displacement

  • :idy (Float)

    Vertical input displacement

Returns:



# File 'lib/vips/methods.rb', line 2482

#round(round, **opts) ⇒ Vips::Image

Perform a round function on an image.

Parameters:

Returns:



# File 'lib/vips/methods.rb', line 114

#scaleFloat

Get scale metadata.

Returns:

  • (Float)

    image scale



938
939
940
941
942
# File 'lib/vips/image.rb', line 938

def scale
  return 1 if get_typeof("scale") == 0

  get "scale"
end

#scaleimage(**opts) ⇒ Vips::Image

Scale an image to uchar. This is the vips scale operation, but renamed to avoid a clash with the .scale property.

Parameters:

  • opts (Hash)

    Set of options

Returns:



1616
1617
1618
# File 'lib/vips/image.rb', line 1616

def scaleimage **opts
  Vips::Image.scale self, **opts
end

#scharr(**opts) ⇒ Vips::Image

Scharr edge detector.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2868

#scRGB2BW(**opts) ⇒ Vips::Image

Convert scrgb to bw.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :depth (Integer)

    Output device space depth in bits

Returns:



# File 'lib/vips/methods.rb', line 2667

#scRGB2sRGB(**opts) ⇒ Vips::Image

Convert an scrgb image to srgb.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :depth (Integer)

    Output device space depth in bits

Returns:



# File 'lib/vips/methods.rb', line 2678

#scRGB2XYZ(**opts) ⇒ Vips::Image

Transform scrgb to xyz.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2662

#sequential(**opts) ⇒ Vips::Image

Check sequential access.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_height (Integer)

    Tile height in pixels

Returns:



# File 'lib/vips/methods.rb', line 301

#set(name, value) ⇒ Object

This method is deprecated.

Please use MutableImage#set! instead.



835
836
837
# File 'lib/vips/image.rb', line 835

def set name, value
  set_type get_typeof(name), name, value
end

#set_kill(kill) ⇒ Object

Kill computation of this time.

Set true to stop computation of this image. You can call this from a progress handler, for example.

Parameters:

  • kill (Boolean)

    stop computation

See Also:



729
730
731
# File 'lib/vips/image.rb', line 729

def set_kill kill
  Vips.vips_image_set_kill self, kill
end

#set_progress(state) ⇒ Object

Turn progress signalling on and off.

If this is on, the most-downstream image from this image will issue progress signals.

Parameters:

  • state (Boolean)

    progress signalling state

See Also:



718
719
720
# File 'lib/vips/image.rb', line 718

def set_progress state
  Vips.vips_image_set_progress self, state
end

#set_type(gtype, name, value) ⇒ Object

This method is deprecated.

Please use MutableImage#set_type! instead.



824
825
826
827
828
829
830
# File 'lib/vips/image.rb', line 824

def set_type gtype, name, value
  gvalue = GObject::GValue.alloc
  gvalue.init gtype
  gvalue.set value
  Vips.vips_image_set self, name, gvalue
  gvalue.unset
end

#set_value(name, value) ⇒ Object

This method is deprecated.

Please use MutableImage#set! instead.



854
855
856
# File 'lib/vips/image.rb', line 854

def set_value name, value
  set name, value
end

#sharpen(**opts) ⇒ Vips::Image

Unsharp masking for print.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :sigma (Float)

    Sigma of Gaussian

  • :x1 (Float)

    Flat/jaggy threshold

  • :y2 (Float)

    Maximum brightening

  • :y3 (Float)

    Maximum darkening

  • :m1 (Float)

    Slope for flat areas

  • :m2 (Float)

    Slope for jaggy areas

Returns:



# File 'lib/vips/methods.rb', line 2844

#shrink(hshrink, vshrink, **opts) ⇒ Vips::Image

Shrink an image.

Parameters:

  • hshrink (Float)

    Horizontal shrink factor

  • vshrink (Float)

    Vertical shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :ceil (Boolean)

    Round-up output dimensions

Returns:



# File 'lib/vips/methods.rb', line 2400

#shrinkh(hshrink, **opts) ⇒ Vips::Image

Shrink an image horizontally.

Parameters:

  • hshrink (Integer)

    Horizontal shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :ceil (Boolean)

    Round-up output dimensions

Returns:



# File 'lib/vips/methods.rb', line 2408

#shrinkv(vshrink, **opts) ⇒ Vips::Image

Shrink an image vertically.

Parameters:

  • vshrink (Integer)

    Vertical shrink factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :ceil (Boolean)

    Round-up output dimensions

Returns:



# File 'lib/vips/methods.rb', line 2415

#sign(**opts) ⇒ Vips::Image

Unit vector of pixel.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 109

#similarity(**opts) ⇒ Vips::Image

Similarity transform of an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :scale (Float)

    Scale by this factor

  • :angle (Float)

    Rotate anticlockwise by this many degrees

  • :interpolate (Vips::Interpolate)

    Interpolate pixels with this

  • :background (Array<Double>)

    Background value

  • :odx (Float)

    Horizontal output displacement

  • :ody (Float)

    Vertical output displacement

  • :idx (Float)

    Horizontal input displacement

  • :idy (Float)

    Vertical input displacement

Returns:



# File 'lib/vips/methods.rb', line 2469

#sinImage

Return the sine of an image in degrees.

Returns:

  • (Image)

    sine of each pixel



1421
1422
1423
# File 'lib/vips/image.rb', line 1421

def sin
  math :sin
end

#sinhImage

Return the hyperbolic sine of an image in radians.

Returns:

  • (Image)

    sine of each pixel



1463
1464
1465
# File 'lib/vips/image.rb', line 1463

def sinh
  math :sinh
end

#sizeInteger

Get the image size.

Returns:

  • (Integer, Integer)

    image width and height



956
957
958
# File 'lib/vips/image.rb', line 956

def size
  [width, height]
end

#smartcrop(width, height, **opts) ⇒ Vips::Image, Hash<Symbol => Object>

Extract an area from an image.

Parameters:

  • width (Integer)

    Width of extract area

  • height (Integer)

    Height of extract area

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :interesting (Vips::Interesting)

    How to measure interestingness

  • :premultiplied (Boolean)

    Input image already has premultiplied alpha

  • :attention_x (Integer)

    Output Horizontal position of attention centre

  • :attention_y (Integer)

    Output Vertical position of attention centre

Returns:

  • (Vips::Image, Hash<Symbol => Object>)

    Output image, Hash of optional output items



# File 'lib/vips/methods.rb', line 394

#sobel(**opts) ⇒ Vips::Image

Sobel edge detector.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2863

#spcor(ref, **opts) ⇒ Vips::Image

Spatial correlation.

Parameters:

  • ref (Vips::Image)

    Input reference image

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2838

#spectrum(**opts) ⇒ Vips::Image

Make displayable power spectrum.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2902

#sRGB2HSV(**opts) ⇒ Vips::Image

Transform srgb to hsv.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2597

#sRGB2scRGB(**opts) ⇒ Vips::Image

Convert an srgb image to scrgb.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2657

#stats(**opts) ⇒ Vips::Image

Find many image stats.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 191

#stdif(width, height, **opts) ⇒ Vips::Image

Statistical difference.

Parameters:

  • width (Integer)

    Window width in pixels

  • height (Integer)

    Window height in pixels

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :s0 (Float)

    New deviation

  • :b (Float)

    Weight of new deviation

  • :m0 (Float)

    New mean

  • :a (Float)

    Weight of new mean

Returns:



# File 'lib/vips/methods.rb', line 2719

#subsample(xfac, yfac, **opts) ⇒ Vips::Image

Subsample an image.

Parameters:

  • xfac (Integer)

    Horizontal subsample factor

  • yfac (Integer)

    Vertical subsample factor

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :point (Boolean)

    Point sample

Returns:



# File 'lib/vips/methods.rb', line 535

#subtract(right, **opts) ⇒ Vips::Image

Subtract two images.

Parameters:

  • right (Vips::Image)

    Right-hand image argument

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 21

#tanImage

Return the tangent of an image in degrees.

Returns:

  • (Image)

    tangent of each pixel



1435
1436
1437
# File 'lib/vips/image.rb', line 1435

def tan
  math :tan
end

#tanhImage

Return the hyperbolic tangent of an image in radians.

Returns:

  • (Image)

    tangent of each pixel



1477
1478
1479
# File 'lib/vips/image.rb', line 1477

def tanh
  math :tanh
end

#thumbnail_image(width, **opts) ⇒ Vips::Image

Generate thumbnail from image.

Parameters:

  • width (Integer)

    Size to this width

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :height (Integer)

    Size to this height

  • :size (Vips::Size)

    Only upsize, only downsize, or both

  • :no_rotate (Boolean)

    Don't use orientation tags to rotate image upright

  • :crop (Vips::Interesting)

    Reduce to fill target rectangle, then crop

  • :linear (Boolean)

    Reduce in linear light

  • :import_profile (String)

    Fallback import profile

  • :export_profile (String)

    Fallback export profile

  • :intent (Vips::Intent)

    Rendering intent

  • :fail_on (Vips::FailOn)

    Error level to fail on

Returns:



# File 'lib/vips/methods.rb', line 2358

#tiffsave(filename, **opts) ⇒ nil

Save image to tiff file.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Vips::ForeignTiffCompression)

    Compression for this file

  • :Q (Integer)

    Q factor

  • :predictor (Vips::ForeignTiffPredictor)

    Compression prediction

  • :tile (Boolean)

    Write a tiled tiff

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :pyramid (Boolean)

    Write a pyramidal tiff

  • :miniswhite (Boolean)

    Use 0 for white in 1-bit images

  • :bitdepth (Integer)

    Write as a 1, 2, 4 or 8 bit image

  • :resunit (Vips::ForeignTiffResunit)

    Resolution unit

  • :xres (Float)

    Horizontal resolution in pixels/mm

  • :yres (Float)

    Vertical resolution in pixels/mm

  • :bigtiff (Boolean)

    Write a bigtiff image

  • :properties (Boolean)

    Write a properties document to IMAGEDESCRIPTION

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :level (Integer)

    ZSTD compression level

  • :lossless (Boolean)

    Enable WEBP lossless mode

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :subifd (Boolean)

    Save pyr layers as sub-IFDs

  • :premultiply (Boolean)

    Save with premultiplied alpha

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2093

#tiffsave_buffer(**opts) ⇒ VipsBlob

Save image to tiff buffer.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Vips::ForeignTiffCompression)

    Compression for this file

  • :Q (Integer)

    Q factor

  • :predictor (Vips::ForeignTiffPredictor)

    Compression prediction

  • :tile (Boolean)

    Write a tiled tiff

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :pyramid (Boolean)

    Write a pyramidal tiff

  • :miniswhite (Boolean)

    Use 0 for white in 1-bit images

  • :bitdepth (Integer)

    Write as a 1, 2, 4 or 8 bit image

  • :resunit (Vips::ForeignTiffResunit)

    Resolution unit

  • :xres (Float)

    Horizontal resolution in pixels/mm

  • :yres (Float)

    Vertical resolution in pixels/mm

  • :bigtiff (Boolean)

    Write a bigtiff image

  • :properties (Boolean)

    Write a properties document to IMAGEDESCRIPTION

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :level (Integer)

    ZSTD compression level

  • :lossless (Boolean)

    Enable WEBP lossless mode

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :subifd (Boolean)

    Save pyr layers as sub-IFDs

  • :premultiply (Boolean)

    Save with premultiplied alpha

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 2123

#tiffsave_target(target, **opts) ⇒ nil

Save image to tiff target.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :compression (Vips::ForeignTiffCompression)

    Compression for this file

  • :Q (Integer)

    Q factor

  • :predictor (Vips::ForeignTiffPredictor)

    Compression prediction

  • :tile (Boolean)

    Write a tiled tiff

  • :tile_width (Integer)

    Tile width in pixels

  • :profile (String)

    Filename of ICC profile to embed

  • :tile_height (Integer)

    Tile height in pixels

  • :pyramid (Boolean)

    Write a pyramidal tiff

  • :miniswhite (Boolean)

    Use 0 for white in 1-bit images

  • :bitdepth (Integer)

    Write as a 1, 2, 4 or 8 bit image

  • :resunit (Vips::ForeignTiffResunit)

    Resolution unit

  • :xres (Float)

    Horizontal resolution in pixels/mm

  • :yres (Float)

    Vertical resolution in pixels/mm

  • :bigtiff (Boolean)

    Write a bigtiff image

  • :properties (Boolean)

    Write a properties document to IMAGEDESCRIPTION

  • :region_shrink (Vips::RegionShrink)

    Method to shrink regions

  • :level (Integer)

    ZSTD compression level

  • :lossless (Boolean)

    Enable WEBP lossless mode

  • :depth (Vips::ForeignDzDepth)

    Pyramid depth

  • :subifd (Boolean)

    Save pyr layers as sub-IFDs

  • :premultiply (Boolean)

    Save with premultiplied alpha

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2152

#tilecache(**opts) ⇒ Vips::Image

Cache an image as a set of tiles.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :tile_width (Integer)

    Tile width in pixels

  • :tile_height (Integer)

    Tile height in pixels

  • :max_tiles (Integer)

    Maximum number of tiles to cache

  • :access (Vips::Access)

    Expected access pattern

  • :threaded (Boolean)

    Allow threaded access

  • :persistent (Boolean)

    Keep cache between evaluations

Returns:



# File 'lib/vips/methods.rb', line 281

#to_aArray

Convert to an Array. This will be slow for large images.

Returns:

  • (Array)

    Array of Arrays of Arrays of Numerics



1230
1231
1232
# File 'lib/vips/image.rb', line 1230

def to_a
  to_enum.to_a
end

#to_enumEnumerator

Convert to an Enumerator. Similar to #to_a but lazier.

Returns:

  • (Enumerator)

    Enumerator of Enumerators of Arrays of Numerics



1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
# File 'lib/vips/image.rb', line 1201

def to_enum
  # make the template for unpack
  template = {
    char: "c",
    uchar: "C",
    short: "s_",
    ushort: "S_",
    int: "i_",
    uint: "I_",
    float: "f",
    double: "d",
    complex: "f",
    dpcomplex: "d"
  }[format] + "*"

  # we render the image to a big string, then unpack into
  # one-dimensional array as a Ruby array of the correct type
  array = write_to_memory.unpack template

  # gather bands of a pixel together
  pixel_array = array.each_slice bands

  # gather pixels of a row together
  pixel_array.each_slice width
end

#transpose3d(**opts) ⇒ Vips::Image

Transpose3d an image.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :page_height (Integer)

    Height of each input page

Returns:



# File 'lib/vips/methods.rb', line 515

#unpremultiply(**opts) ⇒ Vips::Image

Unpremultiply image alpha.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :max_alpha (Float)

    Maximum value of alpha channel

  • :alpha_band (Integer)

    Unpremultiply with this alpha

Returns:



# File 'lib/vips/methods.rb', line 500

#vipssave(filename, **opts) ⇒ nil

Save image to file in vips format.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1644

#vipssave_target(target, **opts) ⇒ nil

Save image to target in vips format.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :profile (String)

    Filename of ICC profile to embed

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 1654

#webpsave(filename, **opts) ⇒ nil

Save as webp.

Parameters:

  • filename (String)

    Filename to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :lossless (Boolean)

    Enable lossless compression

  • :profile (String)

    Filename of ICC profile to embed

  • :preset (Vips::ForeignWebpPreset)

    Preset for lossy compression

  • :smart_subsample (Boolean)

    Enable high quality chroma subsampling

  • :near_lossless (Boolean)

    Enable preprocessing in lossless mode (uses Q)

  • :alpha_q (Integer)

    Change alpha plane fidelity for lossy compression

  • :min_size (Boolean)

    Optimise for minimum size

  • :kmin (Integer)

    Minimum number of frames between key frames

  • :kmax (Integer)

    Maximum number of frames between key frames

  • :effort (Integer)

    Level of CPU effort to reduce file size

  • :mixed (Boolean)

    Allow mixed encoding (might reduce file size)

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2011

#webpsave_buffer(**opts) ⇒ VipsBlob

Save as webp.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :lossless (Boolean)

    Enable lossless compression

  • :profile (String)

    Filename of ICC profile to embed

  • :preset (Vips::ForeignWebpPreset)

    Preset for lossy compression

  • :smart_subsample (Boolean)

    Enable high quality chroma subsampling

  • :near_lossless (Boolean)

    Enable preprocessing in lossless mode (uses Q)

  • :alpha_q (Integer)

    Change alpha plane fidelity for lossy compression

  • :min_size (Boolean)

    Optimise for minimum size

  • :kmin (Integer)

    Minimum number of frames between key frames

  • :kmax (Integer)

    Maximum number of frames between key frames

  • :effort (Integer)

    Level of CPU effort to reduce file size

  • :mixed (Boolean)

    Allow mixed encoding (might reduce file size)

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (VipsBlob)

    Buffer to save to



# File 'lib/vips/methods.rb', line 2032

#webpsave_mime(**opts) ⇒ nil

Save image to webp mime.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :lossless (Boolean)

    Enable lossless compression

  • :profile (String)

    Filename of ICC profile to embed

  • :preset (Vips::ForeignWebpPreset)

    Preset for lossy compression

  • :smart_subsample (Boolean)

    Enable high quality chroma subsampling

  • :near_lossless (Boolean)

    Enable preprocessing in lossless mode (uses Q)

  • :alpha_q (Integer)

    Change alpha plane fidelity for lossy compression

  • :min_size (Boolean)

    Optimise for minimum size

  • :kmin (Integer)

    Minimum number of frames between key frames

  • :kmax (Integer)

    Maximum number of frames between key frames

  • :effort (Integer)

    Level of CPU effort to reduce file size

  • :mixed (Boolean)

    Allow mixed encoding (might reduce file size)

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2073

#webpsave_target(target, **opts) ⇒ nil

Save as webp.

Parameters:

  • target (Vips::Target)

    Target to save to

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :Q (Integer)

    Q factor

  • :lossless (Boolean)

    Enable lossless compression

  • :profile (String)

    Filename of ICC profile to embed

  • :preset (Vips::ForeignWebpPreset)

    Preset for lossy compression

  • :smart_subsample (Boolean)

    Enable high quality chroma subsampling

  • :near_lossless (Boolean)

    Enable preprocessing in lossless mode (uses Q)

  • :alpha_q (Integer)

    Change alpha plane fidelity for lossy compression

  • :min_size (Boolean)

    Optimise for minimum size

  • :kmin (Integer)

    Minimum number of frames between key frames

  • :kmax (Integer)

    Maximum number of frames between key frames

  • :effort (Integer)

    Level of CPU effort to reduce file size

  • :mixed (Boolean)

    Allow mixed encoding (might reduce file size)

  • :keep (Vips::ForeignKeep)

    Which metadata to retain

  • :background (Array<Double>)

    Background value

  • :page_height (Integer)

    Set page height for multipage save

Returns:

  • (nil)


# File 'lib/vips/methods.rb', line 2052

#widthInteger

Get image width, in pixels.

Returns:

  • (Integer)

    image width, in pixels



861
862
863
# File 'lib/vips/image.rb', line 861

def width
  Vips.vips_image_get_width self
end

#wrap(**opts) ⇒ Vips::Image

Wrap image origin.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :x (Integer)

    Left edge of input in output

  • :y (Integer)

    Top edge of input in output

Returns:



# File 'lib/vips/methods.rb', line 521

#write_to_buffer(format_string, **opts) ⇒ String

Write this image to a memory buffer. Save options may be encoded in the format_string or given as a hash. For example:

buffer = image.write_to_buffer ".jpg[Q=90]"

or equivalently:

image.write_to_buffer ".jpg", Q: 90

The full set of save options depend on the selected saver. Try something like:

$ vips jpegsave

to see all the available options for JPEG save.

Parameters:

  • format_string (String)

    save format plus options

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :strip (Boolean) — default: false

    Strip all metadata from image

  • :background (Array<Float>) — default: 0

    Background colour to flatten alpha against, if necessary

Returns:

  • (String)

    the image saved in the specified format

Raises:



629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
# File 'lib/vips/image.rb', line 629

def write_to_buffer format_string, **opts
  raise Vips::Error, "filename is nil" if format_string.nil?
  filename = Vips.p2str(Vips.vips_filename_get_filename(format_string))
  option_string = Vips.p2str(Vips.vips_filename_get_options(format_string))

  # try to save with the new target API first, only fall back to the old
  # buffer API if there's no target save for this filetype
  saver = nil
  if Vips.at_least_libvips?(8, 9)
    Vips.vips_error_freeze
    saver = Vips.vips_foreign_find_save_target filename
    Vips.vips_error_thaw
  end

  if !saver.nil?
    target = Vips::Target.new_to_memory
    Vips::Operation.call saver, [self, target], opts, option_string
    buffer = target.get("blob")
  else
    saver = Vips.vips_foreign_find_save_buffer filename
    raise Vips::Error if saver.nil?

    buffer = Vips::Operation.call saver, [self], opts, option_string
    raise Vips::Error if buffer.nil?
  end

  write_gc

  buffer
end

#write_to_file(name, **opts) ⇒ Object

Write this image to a file. Save options may be encoded in the filename or given as a hash. For example:

image.write_to_file "fred.jpg[Q=90]"

or equivalently:

image.write_to_file "fred.jpg", Q: 90

The full set of save options depend on the selected saver. Try something like:

$ vips jpegsave

to see all the available options for JPEG save.

Parameters:

  • opts (Hash)

    set of options

  • name (String)

    filename to write to

Options Hash (**opts):

  • :strip (Boolean) — default: false

    Strip all metadata from image

  • :background (Array<Float>) — default: 0

    Background colour to flatten alpha against, if necessary

Raises:



591
592
593
594
595
596
597
598
599
600
601
602
# File 'lib/vips/image.rb', line 591

def write_to_file name, **opts
  raise Vips::Error, "filename is nil" if name.nil?

  filename = Vips.p2str(Vips.vips_filename_get_filename(name))
  option_string = Vips.p2str(Vips.vips_filename_get_options(name))
  saver = Vips.vips_foreign_find_save filename
  raise Vips::Error if saver.nil?

  Vips::Operation.call saver, [self, filename], opts, option_string

  write_gc
end

#write_to_memoryString

Write this image to a large memory buffer.

Returns:

  • (String)

    the pixels as a huge binary string

Raises:



700
701
702
703
704
705
706
707
708
709
# File 'lib/vips/image.rb', line 700

def write_to_memory
  len = Vips::SizeStruct.new
  ptr = Vips.vips_image_write_to_memory self, len
  raise Vips::Error if ptr.nil?

  # wrap up as an autopointer
  ptr = FFI::AutoPointer.new(ptr, GLib::G_FREE)

  ptr.get_bytes 0, len[:value]
end

#write_to_target(target, format_string, **opts) ⇒ Object

Write this image to a target. Save options may be encoded in the format_string or given as a hash. For example:

target = Vips::Target.new_to_file "k2.jpg"
image.write_to_target target, ".jpg[Q=90]"

or equivalently:

image.write_to_target target, ".jpg", Q: 90

The full set of save options depend on the selected saver. Try something like:

$ vips jpegsave_target

to see all the available options for JPEG save.

Parameters:

  • target (Vips::Target)

    the target to write to

  • format_string (String)

    save format plus string options

  • opts (Hash)

    set of options

Options Hash (**opts):

  • :strip (Boolean) — default: false

    Strip all metadata from image

  • :background (Array<Float>) — default: 0

    Background colour to flatten alpha against, if necessary

Raises:



686
687
688
689
690
691
692
693
694
695
# File 'lib/vips/image.rb', line 686

def write_to_target target, format_string, **opts
  raise Vips::Error, "filename is nil" if format_string.nil?
  filename = Vips.p2str(Vips.vips_filename_get_filename(format_string))
  option_string = Vips.p2str(Vips.vips_filename_get_options(format_string))
  saver = Vips.vips_foreign_find_save_target filename
  raise Vips::Error if saver.nil?

  Vips::Operation.call saver, [self, target], opts, option_string
  write_gc
end

#xoffsetInteger

Get image xoffset.

Returns:

  • (Integer)

    image xoffset



910
911
912
# File 'lib/vips/image.rb', line 910

def xoffset
  get "xoffset"
end

#xresFloat

Get image x resolution.

Returns:

  • (Float)

    image x resolution



924
925
926
# File 'lib/vips/image.rb', line 924

def xres
  get "xres"
end

#XYZ2CMYK(**opts) ⇒ Vips::Image

Transform xyz to cmyk.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2689

#XYZ2Lab(**opts) ⇒ Vips::Image

Transform xyz to lab.

Parameters:

  • opts (Hash)

    Set of options

Options Hash (**opts):

  • :temp (Array<Double>)

    Colour temperature

Returns:



# File 'lib/vips/methods.rb', line 2516

#XYZ2scRGB(**opts) ⇒ Vips::Image

Transform xyz to scrgb.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2673

#XYZ2Yxy(**opts) ⇒ Vips::Image

Transform xyz to yxy.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2542

#yoffsetInteger

Get image yoffset.

Returns:

  • (Integer)

    image yoffset



917
918
919
# File 'lib/vips/image.rb', line 917

def yoffset
  get "yoffset"
end

#yresFloat

Get image y resolution.

Returns:

  • (Float)

    image y resolution



931
932
933
# File 'lib/vips/image.rb', line 931

def yres
  get "yres"
end

#Yxy2XYZ(**opts) ⇒ Vips::Image

Transform yxy to xyz.

Parameters:

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 2547

#zoom(xfac, yfac, **opts) ⇒ Vips::Image

Zoom an image.

Parameters:

  • xfac (Integer)

    Horizontal zoom factor

  • yfac (Integer)

    Vertical zoom factor

  • opts (Hash)

    Set of options

Returns:



# File 'lib/vips/methods.rb', line 528

#|(other) ⇒ Image

Integer bitwise OR with an image, constant or array.

Parameters:

  • other (Image, Real, Array<Real>)

    bitwise OR with this

Returns:

  • (Image)

    result of bitwise OR



1077
1078
1079
# File 'lib/vips/image.rb', line 1077

def | other
  call_enum "boolean", other, :or
end

#~Image

Equivalent to image ^ -1

Returns:

  • (Image)

    image with bits flipped



1107
1108
1109
# File 'lib/vips/image.rb', line 1107

def ~
  self ^ -1
end