Sha256: dc14e6fab5512fb8c9e86bd155ae1082aca738cf6804020f1b1e7202cf19152e

Contents?: true

Size: 1.44 KB

Versions: 9

Compression:

Stored size: 1.44 KB

Contents

module Vips
  attach_function :vips_interpolate_new, [:string], :pointer

  # An interpolator. One of these can be given to operations like
  # {Image#affine} or {Image#mapim} to select the type of pixel interpolation
  # to use.
  #
  # To see all interpolators supported by your
  # libvips, try
  #
  # ```
  # $ vips -l interpolate
  # ```
  #
  # But at least these should be available:
  #
  # *   `:nearest` Nearest-neighbour interpolation.
  # *   `:bilinear` Bilinear interpolation.
  # *   `:bicubic` Bicubic interpolation.
  # *   `:lbb` Reduced halo bicubic interpolation.
  # *   `:nohalo` Edge sharpening resampler with halo reduction.
  # *   `:vsqbs` B-Splines with antialiasing smoothing.
  #
  #  For example:
  #
  #  ```ruby
  #  im = im.affine [2, 0, 0, 2],
  #      :interpolate => Vips::Interpolate.new(:bicubic)
  #  ```

  class Interpolate < Vips::Object
    # the layout of the VipsInterpolate struct
    module InterpolateLayout
      def self.included base
        base.class_eval do
          layout :parent, Vips::Object::Struct
          # rest opaque
        end
      end
    end

    class Struct < Vips::Object::Struct
      include InterpolateLayout
    end

    class ManagedStruct < Vips::Object::ManagedStruct
      include InterpolateLayout
    end

    def initialize name
      name = name.to_s if name.is_a? Symbol
      ptr = Vips.vips_interpolate_new name
      raise Vips::Error if ptr.nil?

      super ptr
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
vips-8.15.1 lib/vips/interpolate.rb
ruby-vips-2.2.0 lib/vips/interpolate.rb
vips-8.12.2 lib/vips/interpolate.rb
vips-8.12.1 lib/vips/interpolate.rb
ruby-vips-2.1.4 lib/vips/interpolate.rb
ruby-vips-2.1.3 lib/vips/interpolate.rb
ruby-vips-2.1.2 lib/vips/interpolate.rb
ruby-vips-2.1.1 lib/vips/interpolate.rb
ruby-vips-2.1.0 lib/vips/interpolate.rb