Class: Vips::Image
- Inherits:
-
Object
- Object
- GObject::GObject
- Object
- Vips::Image
- 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: ManagedStruct, Struct
Class Method Summary collapse
-
.analyzeload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load an analyze6 image.
-
.arrayjoin(im, opts = {}) ⇒ Vips::Image
Join an array of images.
-
.bandrank(im, opts = {}) ⇒ Vips::Image
Band-wise rank of a set of images.
-
.black(width, height, opts = {}) ⇒ Vips::Image
Make a black image.
-
.csvload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load csv from file.
-
.eye(width, height, opts = {}) ⇒ Vips::Image
Make an image showing the eye's spatial response.
-
.fitsload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load a fits image.
-
.fractsurf(width, height, fractal_dimension, opts = {}) ⇒ Vips::Image
Make a fractal surface.
-
.gaussmat(sigma, min_ampl, opts = {}) ⇒ Vips::Image
Make a gaussian image.
-
.gaussnoise(width, height, opts = {}) ⇒ Vips::Image
Make a gaussnoise image.
-
.gifload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load gif with giflib.
-
.gifload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load gif with giflib.
-
.grey(width, height, opts = {}) ⇒ Vips::Image
Make a grey ramp image.
-
.identity(opts = {}) ⇒ Vips::Image
Make a 1d image where pixel values are indexes.
-
.jpegload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load jpeg from file.
-
.jpegload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load jpeg from buffer.
-
.logmat(sigma, min_ampl, opts = {}) ⇒ Vips::Image
Make a laplacian of gaussian image.
-
.magickload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load file with imagemagick.
-
.magickload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load buffer with imagemagick.
-
.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a butterworth filter.
-
.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a butterworth_band filter.
-
.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make a butterworth ring filter.
-
.mask_fractal(width, height, fractal_dimension, opts = {}) ⇒ Vips::Image
Make fractal filter.
-
.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a gaussian filter.
-
.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a gaussian filter.
-
.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make a gaussian ring filter.
-
.mask_ideal(width, height, frequency_cutoff, opts = {}) ⇒ Vips::Image
Make an ideal filter.
-
.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, opts = {}) ⇒ Vips::Image
Make an ideal band filter.
-
.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make an ideal ring filter.
-
.matload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load mat from file.
- .matrix_from_array(width, height, array) ⇒ Object
-
.matrixload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load matrix from file.
-
.method_missing(name, *args, **options) ⇒ Object
Invoke a vips operation with Operation.call.
-
.new_from_array(array, scale = 1, offset = 0) ⇒ Image
Create a new Image from a 1D or 2D array.
-
.new_from_buffer(data, option_string, opts = {}) ⇒ Image
Create a new Image for an image encoded, in a format such as JPEG, in a memory string.
-
.new_from_file(name, opts = {}) ⇒ Image
Return a new Image for a file on disc.
-
.openexrload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load an openexr image.
-
.openslideload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load file with openslide.
-
.pdfload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load pdf with libpoppler.
-
.pdfload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load pdf with libpoppler.
-
.perlin(width, height, opts = {}) ⇒ Vips::Image
Make a perlin noise image.
-
.pngload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load png from file.
-
.pngload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load png from buffer.
-
.ppmload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load ppm from file.
-
.radload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load a radiance image from a file.
-
.rawload(filename, width, height, bands, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load raw data from a file.
- .respond_to?(name, include_all = false) ⇒ Boolean
-
.sines(width, height, opts = {}) ⇒ Vips::Image
Make a 2d sine wave.
-
.sum(im, opts = {}) ⇒ Vips::Image
Sum an array of images.
-
.svgload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load svg with rsvg.
-
.svgload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load svg with rsvg.
-
.system(cmd_format, opts = {}) ⇒ nil, Hash<Symbol => Object>
Run an external command.
-
.text(text, opts = {}) ⇒ Vips::Image
Make a text image.
-
.thumbnail(filename, width, opts = {}) ⇒ Vips::Image
Generate thumbnail from file.
-
.thumbnail_buffer(buffer, width, opts = {}) ⇒ Vips::Image
Generate thumbnail from buffer.
-
.tiffload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load tiff from file.
-
.tiffload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load tiff from buffer.
-
.tonelut(opts = {}) ⇒ Vips::Image
Build a look-up table.
-
.vipsload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load vips from file.
-
.webpload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load webp from file.
-
.webpload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load webp from buffer.
-
.worley(width, height, opts = {}) ⇒ Vips::Image
Make a worley noise image.
-
.xyz(width, height, opts = {}) ⇒ Vips::Image
Make an image where pixel values are coordinates.
-
.zone(width, height, opts = {}) ⇒ Vips::Image
Make a zone plate.
Instance Method Summary collapse
-
#! ⇒ Image
Equivalent to image ^ -1.
-
#!=(other) ⇒ Image
Compare inequality to nil, an image, constant or array.
-
#%(other) ⇒ Image
Remainder after integer division with an image, constant or array.
-
#&(other) ⇒ Image
Integer bitwise AND with an image, constant or array.
-
#*(other) ⇒ Image
Multiply an image, constant or array.
-
#**(other) ⇒ Image
Raise to power of an image, constant or array.
-
#+(other) ⇒ Image
Add an image, constant or array.
-
#+@ ⇒ Image
Image.
-
#-(other) ⇒ Image
Subtract an image, constant or array.
-
#-@ ⇒ Image
Equivalent to image * -1.
-
#/(other) ⇒ Image
Divide an image, constant or array.
-
#<(other) ⇒ Image
Relational less than with an image, constant or array.
-
#<<(other) ⇒ Image
Integer left shift with an image, constant or array.
-
#<=(other) ⇒ Image
Relational less than or equal to with an image, constant or array.
-
#==(other) ⇒ Image
Compare equality to nil, an image, constant or array.
-
#>(other) ⇒ Image
Relational more than with an image, constant or array.
-
#>=(other) ⇒ Image
Relational more than or equal to with an image, constant or array.
-
#>>(other) ⇒ Image
Integer right shift with an image, constant or array.
-
#[](index) ⇒ Image
Fetch bands using a number or a range.
-
#^(other) ⇒ Image
Integer bitwise EOR with an image, constant or array.
-
#abs(opts = {}) ⇒ Vips::Image
Absolute value of an image.
-
#acos ⇒ Image
Return the inverse cosine of an image in degrees.
-
#add(right, opts = {}) ⇒ Vips::Image
Add two images.
-
#affine(matrix, opts = {}) ⇒ Vips::Image
Affine transform of an image.
-
#asin ⇒ Image
Return the inverse sine of an image in degrees.
-
#atan ⇒ Image
Return the inverse tangent of an image in degrees.
-
#autorot(opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Autorotate image by exif tag.
-
#avg(opts = {}) ⇒ Float
Find image average.
-
#bandand ⇒ Image
AND the bands of an image together.
-
#bandbool(boolean, opts = {}) ⇒ Vips::Image
Boolean operation across image bands.
-
#bandeor ⇒ Image
EOR the bands of an image together.
-
#bandfold(opts = {}) ⇒ Vips::Image
Fold up x axis into bands.
-
#bandjoin(other) ⇒ Image
Join a set of images bandwise.
-
#bandjoin_const(c, opts = {}) ⇒ Vips::Image
Append a constant band to an image.
-
#bandmean(opts = {}) ⇒ Vips::Image
Band-wise average.
-
#bandor ⇒ Image
OR the bands of an image together.
-
#bands ⇒ Integer
Get number of image bands.
-
#bandsplit ⇒ Array<Image>
Split an n-band image into n separate images.
-
#bandunfold(opts = {}) ⇒ Vips::Image
Unfold image bands into x axis.
-
#boolean(right, boolean, opts = {}) ⇒ Vips::Image
Boolean operation on two images.
-
#boolean_const(boolean, c, opts = {}) ⇒ Vips::Image
Boolean operations against a constant.
-
#buildlut(opts = {}) ⇒ Vips::Image
Build a look-up table.
-
#byteswap(opts = {}) ⇒ Vips::Image
Byteswap an image.
-
#cache(opts = {}) ⇒ Vips::Image
Cache an image.
-
#cast(format, opts = {}) ⇒ Vips::Image
Cast an image.
-
#ceil ⇒ Image
Return the smallest integral value not less than the argument.
-
#CMC2LCh(opts = {}) ⇒ Vips::Image
Transform lch to cmc.
-
#coding ⇒ Symbol
Get image coding.
-
#colourspace(space, opts = {}) ⇒ Vips::Image
Convert to a new colorspace.
-
#compass(mask, opts = {}) ⇒ Vips::Image
Convolve with rotating mask.
-
#complex(cmplx, opts = {}) ⇒ Vips::Image
Perform a complex operation on an image.
-
#complex2(right, cmplx, opts = {}) ⇒ Vips::Image
Complex binary operations on two images.
-
#complexform(right, opts = {}) ⇒ Vips::Image
Form a complex image from two real images.
-
#complexget(get, opts = {}) ⇒ Vips::Image
Get a component from a complex image.
-
#conj ⇒ Image
Return the complex conjugate of an image.
-
#conv(mask, opts = {}) ⇒ Vips::Image
Convolution operation.
-
#conva(mask, opts = {}) ⇒ Vips::Image
Approximate integer convolution.
-
#convasep(mask, opts = {}) ⇒ Vips::Image
Approximate separable integer convolution.
-
#convf(mask, opts = {}) ⇒ Vips::Image
Float convolution operation.
-
#convi(mask, opts = {}) ⇒ Vips::Image
Int convolution operation.
-
#convsep(mask, opts = {}) ⇒ Vips::Image
Seperable convolution operation.
-
#copy(opts = {}) ⇒ Vips::Image
Copy an image.
- #copy_memory ⇒ Object
-
#cos ⇒ Image
Return the cosine of an image in degrees.
-
#countlines(direction, opts = {}) ⇒ Float
Count lines in an image.
-
#cross_phase(other) ⇒ Image
Calculate the cross phase of two images.
-
#csvsave(filename, opts = {}) ⇒ nil
Save image to csv file.
-
#dE00(right, opts = {}) ⇒ Vips::Image
Calculate de00.
-
#dE76(right, opts = {}) ⇒ Vips::Image
Calculate de76.
-
#dECMC(right, opts = {}) ⇒ Vips::Image
Calculate decmc.
-
#deviate(opts = {}) ⇒ Float
Find image standard deviation.
-
#dilate(mask) ⇒ Image
Dilate with a structuring element.
-
#divide(right, opts = {}) ⇒ Vips::Image
Divide two images.
-
#draw_circle(ink, cx, cy, radius, opts = {}) ⇒ Vips::Image
Draw a circle on an image.
-
#draw_flood(ink, x, y, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Flood-fill an area.
-
#draw_image(sub, x, y, opts = {}) ⇒ Vips::Image
Paint an image into another image.
-
#draw_line(ink, x1, y1, x2, y2, opts = {}) ⇒ Vips::Image
Draw a line on an image.
-
#draw_mask(ink, mask, x, y, opts = {}) ⇒ Vips::Image
Draw a mask on an image.
-
#draw_rect(ink, left, top, width, height, opts = {}) ⇒ Vips::Image
Paint a rectangle on an image.
-
#draw_smudge(left, top, width, height, opts = {}) ⇒ Vips::Image
Blur a rectangle on an image.
-
#dzsave(filename, opts = {}) ⇒ nil
Save image to deepzoom file.
-
#dzsave_buffer(opts = {}) ⇒ VipsBlob
Save image to dz buffer.
-
#embed(x, y, width, height, opts = {}) ⇒ Vips::Image
Embed an image in a larger image.
-
#erode(mask) ⇒ Image
Erode with a structuring element.
-
#exp ⇒ Image
Return e ** pixel.
-
#exp10 ⇒ Image
Return 10 ** pixel.
-
#extract_area(left, top, width, height, opts = {}) ⇒ Vips::Image
Extract an area from an image.
-
#extract_band(band, opts = {}) ⇒ Vips::Image
Extract band from an image.
-
#falsecolour(opts = {}) ⇒ Vips::Image
False-color an image.
-
#fastcor(ref, opts = {}) ⇒ Vips::Image
Fast correlation.
-
#filename ⇒ String
Get image filename, if any.
-
#fitssave(filename, opts = {}) ⇒ nil
Save image to fits file.
-
#flatten(opts = {}) ⇒ Vips::Image
Flatten alpha out of an image.
-
#flip(direction, opts = {}) ⇒ Vips::Image
Flip an image.
-
#fliphor ⇒ Image
Flip horizontally.
-
#flipver ⇒ Image
Flip vertically.
-
#float2rad(opts = {}) ⇒ Vips::Image
Transform float rgb to radiance coding.
-
#floor ⇒ Image
Return the largest integral value not greater than the argument.
-
#format ⇒ Symbol
Get image format.
-
#freqmult(mask, opts = {}) ⇒ Vips::Image
Frequency-domain filtering.
-
#fwfft(opts = {}) ⇒ Vips::Image
Forward fft.
-
#gamma(opts = {}) ⇒ Vips::Image
Gamma an image.
-
#gaussblur(sigma, opts = {}) ⇒ Vips::Image
Gaussian blur.
-
#get(name) ⇒ Object
Get a metadata item from an image.
-
#get_fields ⇒ [String]
Get the names of all fields on an image.
-
#get_typeof(name) ⇒ Integer
Fetch a
GTypefrom an image. -
#get_value(name) ⇒ Object
compatibility: old name for get.
-
#getpoint(x, y, opts = {}) ⇒ Array<Double>
Read a point from an image.
-
#globalbalance(opts = {}) ⇒ Vips::Image
Global balance an image mosaic.
-
#grid(tile_height, across, down, opts = {}) ⇒ Vips::Image
Grid an image.
-
#height ⇒ Integer
Get image height, in pixels.
-
#hist_cum(opts = {}) ⇒ Vips::Image
Form cumulative histogram.
-
#hist_entropy(opts = {}) ⇒ Float
Estimate image entropy.
-
#hist_equal(opts = {}) ⇒ Vips::Image
Histogram equalisation.
-
#hist_find(opts = {}) ⇒ Vips::Image
Find image histogram.
-
#hist_find_indexed(index, opts = {}) ⇒ Vips::Image
Find indexed image histogram.
-
#hist_find_ndim(opts = {}) ⇒ Vips::Image
Find n-dimensional image histogram.
-
#hist_ismonotonic(opts = {}) ⇒ Boolean
Test for monotonicity.
-
#hist_local(width, height, opts = {}) ⇒ Vips::Image
Local histogram equalisation.
-
#hist_match(ref, opts = {}) ⇒ Vips::Image
Match two histograms.
-
#hist_norm(opts = {}) ⇒ Vips::Image
Normalise histogram.
-
#hist_plot(opts = {}) ⇒ Vips::Image
Plot histogram.
-
#hough_circle(opts = {}) ⇒ Vips::Image
Find hough circle transform.
-
#hough_line(opts = {}) ⇒ Vips::Image
Find hough line transform.
-
#HSV2sRGB(opts = {}) ⇒ Vips::Image
Transform hsv to srgb.
-
#icc_export(opts = {}) ⇒ Vips::Image
Output to device with icc profile.
-
#icc_import(opts = {}) ⇒ Vips::Image
Import from device with icc profile.
-
#icc_transform(output_profile, opts = {}) ⇒ Vips::Image
Transform between devices with icc profiles.
-
#ifthenelse(th, el, opts = {}) ⇒ Image
Select pixels from
thifselfis non-zero and fromelifselfis zero. -
#imag ⇒ Image
Return the imaginary part of a complex image.
-
#insert(sub, x, y, opts = {}) ⇒ Vips::Image
Insert image @sub into @main at @x, @y.
- #inspect ⇒ Object
-
#interpretation ⇒ Symbol
Get image interpretation.
-
#invert(opts = {}) ⇒ Vips::Image
Invert an image.
-
#invertlut(opts = {}) ⇒ Vips::Image
Build an inverted look-up table.
-
#invfft(opts = {}) ⇒ Vips::Image
Inverse fft.
-
#join(in2, direction, opts = {}) ⇒ Vips::Image
Join a pair of images.
-
#jpegsave(filename, opts = {}) ⇒ nil
Save image to jpeg file.
-
#jpegsave_buffer(opts = {}) ⇒ VipsBlob
Save image to jpeg buffer.
-
#jpegsave_mime(opts = {}) ⇒ nil
Save image to jpeg mime.
-
#Lab2LabQ(opts = {}) ⇒ Vips::Image
Transform float lab to labq coding.
-
#Lab2LabS(opts = {}) ⇒ Vips::Image
Transform float lab to signed short.
-
#Lab2LCh(opts = {}) ⇒ Vips::Image
Transform lab to lch.
-
#Lab2XYZ(opts = {}) ⇒ Vips::Image
Transform cielab to xyz.
-
#labelregions(opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Label regions in an image.
-
#LabQ2Lab(opts = {}) ⇒ Vips::Image
Unpack a labq image to float lab.
-
#LabQ2LabS(opts = {}) ⇒ Vips::Image
Unpack a labq image to short lab.
-
#LabQ2sRGB(opts = {}) ⇒ Vips::Image
Convert a labq image to srgb.
-
#LabS2Lab(opts = {}) ⇒ Vips::Image
Transform signed short lab to float.
-
#LabS2LabQ(opts = {}) ⇒ Vips::Image
Transform short lab to labq coding.
-
#LCh2CMC(opts = {}) ⇒ Vips::Image
Transform lch to cmc.
-
#LCh2Lab(opts = {}) ⇒ Vips::Image
Transform lch to lab.
-
#linear(a, b, opts = {}) ⇒ Vips::Image
Calculate (a * in + b).
-
#linecache(opts = {}) ⇒ Vips::Image
Cache an image as a set of lines.
-
#log ⇒ Image
Return the natural log of an image.
-
#log10 ⇒ Image
Return the log base 10 of an image.
-
#mapim(index, opts = {}) ⇒ Vips::Image
Resample with an mapim image.
-
#maplut(lut, opts = {}) ⇒ Vips::Image
Map an image though a lut.
-
#match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, opts = {}) ⇒ Vips::Image
First-order match of two images.
-
#math(math, opts = {}) ⇒ Vips::Image
Apply a math operation to an image.
-
#math2(right, math2, opts = {}) ⇒ Vips::Image
Binary math operations.
-
#math2_const(math2, c, opts = {}) ⇒ Vips::Image
Binary math operations with a constant.
-
#matrixprint(opts = {}) ⇒ nil
Print matrix.
-
#matrixsave(filename, opts = {}) ⇒ nil
Save image to matrix file.
-
#max(opts = {}) ⇒ Float, Hash<Symbol => Object>
Find image maximum.
-
#maxpos ⇒ Real
Return the coordinates of the image maximum.
-
#measure(h, v, opts = {}) ⇒ Vips::Image
Measure a set of patches on a color chart.
-
#median(size = 3) ⇒ Image
a median filter.
-
#merge(sec, direction, dx, dy, opts = {}) ⇒ Vips::Image
Merge two images.
-
#method_missing(name, *args, **options) ⇒ Object
Invoke a vips operation with Operation.call, using self as the first input argument.
-
#min(opts = {}) ⇒ Float, Hash<Symbol => Object>
Find image minimum.
-
#minpos ⇒ Real
Return the coordinates of the image minimum.
-
#morph(mask, morph, opts = {}) ⇒ Vips::Image
Morphology operation.
-
#mosaic(sec, direction, xref, yref, xsec, ysec, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Mosaic two images.
-
#mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, opts = {}) ⇒ Vips::Image
First-order mosaic of two images.
-
#msb(opts = {}) ⇒ Vips::Image
Pick most-significant byte from an image.
-
#multiply(right, opts = {}) ⇒ Vips::Image
Multiply two images.
-
#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.
-
#offset ⇒ Float
Get offset metadata.
-
#percent(percent, opts = {}) ⇒ Integer
Find threshold for percent of pixels.
-
#phasecor(in2, opts = {}) ⇒ Vips::Image
Calculate phase correlation.
-
#pngsave(filename, opts = {}) ⇒ nil
Save image to png file.
-
#pngsave_buffer(opts = {}) ⇒ VipsBlob
Save image to png buffer.
-
#polar ⇒ Image
Return an image with rectangular pixels converted to polar.
-
#ppmsave(filename, opts = {}) ⇒ nil
Save image to ppm file.
-
#premultiply(opts = {}) ⇒ Vips::Image
Premultiply image alpha.
-
#profile(opts = {}) ⇒ Array<] First non-zero pixel in column, First non-zero pixel in row
Find image profiles.
-
#project(opts = {}) ⇒ Array<] Sums of columns, Sums of rows
Find image projections.
-
#quadratic(coeff, opts = {}) ⇒ Vips::Image
Resample an image with a quadratic transform.
-
#rad2float(opts = {}) ⇒ Vips::Image
Unpack radiance coding to float rgb.
-
#radsave(filename, opts = {}) ⇒ nil
Save image to radiance file.
-
#radsave_buffer(opts = {}) ⇒ VipsBlob
Save image to radiance buffer.
-
#rank(width, height, index, opts = {}) ⇒ Vips::Image
Rank filter.
-
#rawsave(filename, opts = {}) ⇒ nil
Save image to raw file.
-
#rawsave_fd(fd, opts = {}) ⇒ nil
Write raw image to file descriptor.
-
#real ⇒ Image
Return the real part of a complex image.
-
#recomb(m, opts = {}) ⇒ Vips::Image
Linear recombination with matrix.
-
#rect ⇒ Image
Return an image with polar pixels converted to rectangular.
-
#reduce(hshrink, vshrink, opts = {}) ⇒ Vips::Image
Reduce an image.
-
#reduceh(hshrink, opts = {}) ⇒ Vips::Image
Shrink an image horizontally.
-
#reducev(vshrink, opts = {}) ⇒ Vips::Image
Shrink an image vertically.
-
#relational(right, relational, opts = {}) ⇒ Vips::Image
Relational operation on two images.
-
#relational_const(relational, c, opts = {}) ⇒ Vips::Image
Relational operations against a constant.
-
#remainder(right, opts = {}) ⇒ Vips::Image
Remainder after integer division of two images.
-
#remainder_const(c, opts = {}) ⇒ Vips::Image
Remainder after integer division of an image and a constant.
-
#remove(name) ⇒ Object
Remove a metadata item from an image.
-
#replicate(across, down, opts = {}) ⇒ Vips::Image
Replicate an image.
-
#resize(scale, opts = {}) ⇒ Vips::Image
Resize an image.
- #respond_to?(name, include_all = false) ⇒ Boolean
-
#rint ⇒ Image
Return the nearest integral value.
-
#rot(angle, opts = {}) ⇒ Vips::Image
Rotate an image.
-
#rot180 ⇒ Image
Rotate by 180 degrees clockwise.
-
#rot270 ⇒ Image
Rotate by 270 degrees clockwise.
-
#rot45(opts = {}) ⇒ Vips::Image
Rotate an image.
-
#rot90 ⇒ Image
Rotate by 90 degrees clockwise.
-
#round(round, opts = {}) ⇒ Vips::Image
Perform a round function on an image.
-
#scale ⇒ Float
Get scale metadata.
-
#scaleimage(opts = {}) ⇒ Vips::Image
Scale an image to uchar.
-
#scRGB2BW(opts = {}) ⇒ Vips::Image
Convert scrgb to bw.
-
#scRGB2sRGB(opts = {}) ⇒ Vips::Image
Convert an scrgb image to srgb.
-
#scRGB2XYZ(opts = {}) ⇒ Vips::Image
Transform scrgb to xyz.
-
#sequential(opts = {}) ⇒ Vips::Image
Check sequential access.
-
#set(name, value) ⇒ Object
Set the value of a metadata item on an image.
-
#set_type(gtype, name, value) ⇒ Object
Create a metadata item on an image, of the specifed type.
-
#set_value(name, value) ⇒ Object
compatibility: old name for set.
-
#sharpen(opts = {}) ⇒ Vips::Image
Unsharp masking for print.
-
#shrink(hshrink, vshrink, opts = {}) ⇒ Vips::Image
Shrink an image.
-
#shrinkh(hshrink, opts = {}) ⇒ Vips::Image
Shrink an image horizontally.
-
#shrinkv(vshrink, opts = {}) ⇒ Vips::Image
Shrink an image vertically.
-
#sign(opts = {}) ⇒ Vips::Image
Unit vector of pixel.
-
#similarity(opts = {}) ⇒ Vips::Image
Similarity transform of an image.
-
#sin ⇒ Image
Return the sine of an image in degrees.
-
#size ⇒ Integer
Get the image size.
-
#smartcrop(width, height, opts = {}) ⇒ Vips::Image
Extract an area from an image.
-
#spcor(ref, opts = {}) ⇒ Vips::Image
Spatial correlation.
-
#spectrum(opts = {}) ⇒ Vips::Image
Make displayable power spectrum.
-
#sRGB2HSV(opts = {}) ⇒ Vips::Image
Transform srgb to hsv.
-
#sRGB2scRGB(opts = {}) ⇒ Vips::Image
Convert an srgb image to scrgb.
-
#stats(opts = {}) ⇒ Vips::Image
Find image average.
-
#stdif(width, height, opts = {}) ⇒ Vips::Image
Statistical difference.
-
#subsample(xfac, yfac, opts = {}) ⇒ Vips::Image
Subsample an image.
-
#subtract(right, opts = {}) ⇒ Vips::Image
Subtract two images.
-
#tan ⇒ Image
Return the tangent of an image in degrees.
-
#tiffsave(filename, opts = {}) ⇒ nil
Save image to tiff file.
-
#tiffsave_buffer(opts = {}) ⇒ VipsBlob
Save image to tiff buffer.
-
#tilecache(opts = {}) ⇒ Vips::Image
Cache an image as a set of tiles.
-
#to_a ⇒ Array
Convert to an Array.
-
#unpremultiply(opts = {}) ⇒ Vips::Image
Unpremultiply image alpha.
-
#vipssave(filename, opts = {}) ⇒ nil
Save image to vips file.
-
#webpsave(filename, opts = {}) ⇒ nil
Save image to webp file.
-
#webpsave_buffer(opts = {}) ⇒ VipsBlob
Save image to webp buffer.
-
#width ⇒ Integer
Get image width, in pixels.
-
#wrap(opts = {}) ⇒ Vips::Image
Wrap image origin.
-
#write_to_buffer(format_string, opts = {}) ⇒ String
Write this image to a memory buffer.
-
#write_to_file(name, opts = {}) ⇒ Object
Write this image to a file.
-
#write_to_memory ⇒ String
Write this image to a large memory buffer.
-
#xoffset ⇒ Integer
Get image xoffset.
-
#xres ⇒ Float
Get image x resolution.
-
#XYZ2Lab(opts = {}) ⇒ Vips::Image
Transform xyz to lab.
-
#XYZ2scRGB(opts = {}) ⇒ Vips::Image
Transform xyz to scrgb.
-
#XYZ2Yxy(opts = {}) ⇒ Vips::Image
Transform xyz to yxy.
-
#yoffset ⇒ Integer
Get image yoffset.
-
#yres ⇒ Float
Get image y resolution.
-
#Yxy2XYZ(opts = {}) ⇒ Vips::Image
Transform yxy to xyz.
-
#zoom(xfac, yfac, opts = {}) ⇒ Vips::Image
Zoom an image.
-
#|(other) ⇒ Image
Integer bitwise OR with an image, constant or array.
-
#~ ⇒ Image
Equivalent to image ^ -1.
Methods inherited from Object
#get_typeof_property, print_all
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.
192 193 194 |
# File 'lib/vips/image.rb', line 192 def method_missing name, *args, ** Vips::Operation.call name.to_s, [self, *args], end |
Class Method Details
.analyzeload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load an analyze6 image.
|
|
# File 'lib/vips/methods.rb', line 871
|
.arrayjoin(im, opts = {}) ⇒ Vips::Image
Join an array of images.
|
|
# File 'lib/vips/methods.rb', line 344
|
.bandrank(im, opts = {}) ⇒ Vips::Image
Band-wise rank of a set of images.
|
|
# File 'lib/vips/methods.rb', line 396
|
.black(width, height, opts = {}) ⇒ Vips::Image
Make a black image.
|
|
# File 'lib/vips/methods.rb', line 535
|
.csvload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load csv from file.
|
|
# File 'lib/vips/methods.rb', line 823
|
.eye(width, height, opts = {}) ⇒ Vips::Image
Make an image showing the eye's spatial response.
|
|
# File 'lib/vips/methods.rb', line 591
|
.fitsload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load a fits image.
|
|
# File 'lib/vips/methods.rb', line 1130
|
.fractsurf(width, height, fractal_dimension, opts = {}) ⇒ Vips::Image
Make a fractal surface.
|
|
# File 'lib/vips/methods.rb', line 798
|
.gaussmat(sigma, min_ampl, opts = {}) ⇒ Vips::Image
Make a gaussian image.
|
|
# File 'lib/vips/methods.rb', line 573
|
.gaussnoise(width, height, opts = {}) ⇒ Vips::Image
Make a gaussnoise image.
|
|
# File 'lib/vips/methods.rb', line 543
|
.gifload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load gif with giflib.
|
|
# File 'lib/vips/methods.rb', line 965
|
.gifload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load gif with giflib.
|
|
# File 'lib/vips/methods.rb', line 977
|
.grey(width, height, opts = {}) ⇒ Vips::Image
Make a grey ramp image.
|
|
# File 'lib/vips/methods.rb', line 600
|
.identity(opts = {}) ⇒ Vips::Image
Make a 1d image where pixel values are indexes.
|
|
# File 'lib/vips/methods.rb', line 790
|
.jpegload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load jpeg from file.
|
|
# File 'lib/vips/methods.rb', line 1019
|
.jpegload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load jpeg from buffer.
|
|
# File 'lib/vips/methods.rb', line 1031
|
.logmat(sigma, min_ampl, opts = {}) ⇒ Vips::Image
Make a laplacian of gaussian image.
|
|
# File 'lib/vips/methods.rb', line 582
|
.magickload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load file with imagemagick.
|
|
# File 'lib/vips/methods.rb', line 1104
|
.magickload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load buffer with imagemagick.
|
|
# File 'lib/vips/methods.rb', line 1117
|
.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a butterworth filter.
|
|
# File 'lib/vips/methods.rb', line 665
|
.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a butterworth_band filter.
|
|
# File 'lib/vips/methods.rb', line 694
|
.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make a butterworth ring filter.
|
|
# File 'lib/vips/methods.rb', line 679
|
.mask_fractal(width, height, fractal_dimension, opts = {}) ⇒ Vips::Image
Make fractal filter.
|
|
# File 'lib/vips/methods.rb', line 752
|
.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a gaussian filter.
|
|
# File 'lib/vips/methods.rb', line 710
|
.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, opts = {}) ⇒ Vips::Image
Make a gaussian filter.
|
|
# File 'lib/vips/methods.rb', line 737
|
.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make a gaussian ring filter.
|
|
# File 'lib/vips/methods.rb', line 723
|
.mask_ideal(width, height, frequency_cutoff, opts = {}) ⇒ Vips::Image
Make an ideal filter.
|
|
# File 'lib/vips/methods.rb', line 626
|
.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, opts = {}) ⇒ Vips::Image
Make an ideal band filter.
|
|
# File 'lib/vips/methods.rb', line 651
|
.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, opts = {}) ⇒ Vips::Image
Make an ideal ring filter.
|
|
# File 'lib/vips/methods.rb', line 638
|
.matload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load mat from file.
|
|
# File 'lib/vips/methods.rb', line 1009
|
.matrix_from_array(width, height, array) ⇒ Object
288 289 290 291 292 293 294 |
# File 'lib/vips/image.rb', line 288 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 from file.
|
|
# File 'lib/vips/methods.rb', line 837
|
.method_missing(name, *args, **options) ⇒ Object
Invoke a vips operation with Operation.call.
197 198 199 |
# File 'lib/vips/image.rb', line 197 def self.method_missing name, *args, ** Vips::Operation.call name.to_s, args, 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::new_from_array [1, 2, 3]
or
image = Vips::new_from_array [
[-1, -1, -1],
[-1, 16, -1],
[-1, -1, -1]], 8
for a simple sharpening mask.
322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 |
# File 'lib/vips/image.rb', line 322 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 if not 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 if not array.all? {|x| x.is_a? Array} raise Vips::Error, "Not a 2D array." end if not array.all? {|x| x.length == width} raise Vips::Error, "Array not rectangular." end array = array.flatten else height = 1 width = array.length end if not 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 # be careful to set them as double image.set_type GObject::GDOUBLE_TYPE, 'scale', scale.to_f image.set_type GObject::GDOUBLE_TYPE, 'offset', offset.to_f return image 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 memory string. Load options may be passed as strings or appended as a hash. For example:
image = Vips::new_from_from_buffer memory_buffer, "shrink=2"
or alternatively:
image = Vips::new_from_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.
281 282 283 284 285 286 |
# File 'lib/vips/image.rb', line 281 def self.new_from_buffer data, option_string, opts = {} loader = Vips::vips_foreign_find_load_buffer data, data.length 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::new_from_file "fred.jpg[shrink=2]"
You can also supply options as a hash, for example:
image = Vips::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.
237 238 239 240 241 242 243 244 245 246 247 248 |
# File 'lib/vips/image.rb', line 237 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::vips_filename_get_filename name option_string = Vips:: name loader = Vips::vips_foreign_find_load filename raise Vips::Error if loader == nil Operation.call loader, [filename], opts, option_string end |
.openexrload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load an openexr image.
|
|
# File 'lib/vips/methods.rb', line 1140
|
.openslideload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load file with openslide.
|
|
# File 'lib/vips/methods.rb', line 1091
|
.pdfload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load pdf with libpoppler.
|
|
# File 'lib/vips/methods.rb', line 901
|
.pdfload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load pdf with libpoppler.
|
|
# File 'lib/vips/methods.rb', line 915
|
.perlin(width, height, opts = {}) ⇒ Vips::Image
Make a perlin noise image.
|
|
# File 'lib/vips/methods.rb', line 814
|
.pngload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load png from file.
|
|
# File 'lib/vips/methods.rb', line 989
|
.pngload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load png from buffer.
|
|
# File 'lib/vips/methods.rb', line 999
|
.ppmload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load ppm from file.
|
|
# File 'lib/vips/methods.rb', line 881
|
.radload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load a radiance image from a file.
|
|
# File 'lib/vips/methods.rb', line 891
|
.rawload(filename, width, height, bands, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load raw data from a file.
|
|
# File 'lib/vips/methods.rb', line 847
|
.respond_to?(name, include_all = false) ⇒ Boolean
180 181 182 183 184 185 |
# File 'lib/vips/image.rb', line 180 def self.respond_to? 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.
|
|
# File 'lib/vips/methods.rb', line 616
|
.svgload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load svg with rsvg.
|
|
# File 'lib/vips/methods.rb', line 929
|
.svgload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load svg with rsvg.
|
|
# File 'lib/vips/methods.rb', line 953
|
.system(cmd_format, opts = {}) ⇒ nil, Hash<Symbol => Object>
Run an external command.
|
|
# File 'lib/vips/methods.rb', line 4
|
.thumbnail(filename, width, opts = {}) ⇒ Vips::Image
Generate thumbnail from file.
|
|
# File 'lib/vips/methods.rb', line 1412
|
.thumbnail_buffer(buffer, width, opts = {}) ⇒ Vips::Image
Generate thumbnail from buffer.
|
|
# File 'lib/vips/methods.rb', line 1426
|
.tiffload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load tiff from file.
|
|
# File 'lib/vips/methods.rb', line 1065
|
.tiffload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load tiff from buffer.
|
|
# File 'lib/vips/methods.rb', line 1078
|
.vipsload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load vips from file.
|
|
# File 'lib/vips/methods.rb', line 861
|
.webpload(filename, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load webp from file.
|
|
# File 'lib/vips/methods.rb', line 1043
|
.webpload_buffer(buffer, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Load webp from buffer.
|
|
# File 'lib/vips/methods.rb', line 1054
|
.worley(width, height, opts = {}) ⇒ Vips::Image
Make a worley noise image.
|
|
# File 'lib/vips/methods.rb', line 806
|
.xyz(width, height, opts = {}) ⇒ Vips::Image
Make an image where pixel values are coordinates.
|
|
# File 'lib/vips/methods.rb', line 563
|
.zone(width, height, opts = {}) ⇒ Vips::Image
Make a zone plate.
|
|
# File 'lib/vips/methods.rb', line 608
|
Instance Method Details
#! ⇒ Image
Equivalent to image ^ -1
810 811 812 |
# File 'lib/vips/image.rb', line 810 def ! self ^ -1 end |
#!=(other) ⇒ Image
Compare inequality to nil, an image, constant or array.
884 885 886 887 888 889 890 891 |
# File 'lib/vips/image.rb', line 884 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.
754 755 756 757 |
# File 'lib/vips/image.rb', line 754 def % other other.is_a?(Vips::Image) ? remainder(other) : remainder_const(other) end |
#&(other) ⇒ Image
Integer bitwise AND with an image, constant or array.
795 796 797 |
# File 'lib/vips/image.rb', line 795 def & other call_enum "boolean", other, :and end |
#*(other) ⇒ Image
Multiply an image, constant or array.
736 737 738 739 |
# File 'lib/vips/image.rb', line 736 def * other other.is_a?(Vips::Image) ? multiply(other) : linear(other, 0) end |
#**(other) ⇒ Image
Raise to power of an image, constant or array.
763 764 765 |
# File 'lib/vips/image.rb', line 763 def ** other call_enum "math2", other, :pow end |
#+(other) ⇒ Image
Add an image, constant or array.
718 719 720 721 |
# File 'lib/vips/image.rb', line 718 def + other other.is_a?(Vips::Image) ? add(other) : linear(1, other) end |
#-(other) ⇒ Image
Subtract an image, constant or array.
727 728 729 730 |
# File 'lib/vips/image.rb', line 727 def - other other.is_a?(Vips::Image) ? subtract(other) : linear(1, Image::smap(other) {|x| x * -1}) end |
#-@ ⇒ Image
Equivalent to image * -1
829 830 831 |
# File 'lib/vips/image.rb', line 829 def -@ self * -1 end |
#/(other) ⇒ Image
Divide an image, constant or array.
745 746 747 748 |
# File 'lib/vips/image.rb', line 745 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.
837 838 839 |
# File 'lib/vips/image.rb', line 837 def < other call_enum "relational", other, :less end |
#<<(other) ⇒ Image
Integer left shift with an image, constant or array.
771 772 773 |
# File 'lib/vips/image.rb', line 771 def << other call_enum "boolean", other, :lshift end |
#<=(other) ⇒ Image
Relational less than or equal to with an image, constant or array.
846 847 848 |
# File 'lib/vips/image.rb', line 846 def <= other call_enum "relational", other, :lesseq end |
#==(other) ⇒ Image
Compare equality to nil, an image, constant or array.
871 872 873 874 875 876 877 878 |
# File 'lib/vips/image.rb', line 871 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.
854 855 856 |
# File 'lib/vips/image.rb', line 854 def > other call_enum "relational", other, :more end |
#>=(other) ⇒ Image
Relational more than or equal to with an image, constant or array.
863 864 865 |
# File 'lib/vips/image.rb', line 863 def >= other call_enum "relational", other, :moreeq end |
#>>(other) ⇒ Image
Integer right shift with an image, constant or array.
779 780 781 |
# File 'lib/vips/image.rb', line 779 def >> other call_enum "boolean", other, :rshift end |
#[](index) ⇒ Image
Fetch bands using a number or a range
897 898 899 900 901 902 903 904 905 906 907 |
# File 'lib/vips/image.rb', line 897 def [] index if index.is_a? Range n = index.end - index.begin n += 1 if not index.exclude_end? 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.
803 804 805 |
# File 'lib/vips/image.rb', line 803 def ^ other call_enum "boolean", other, :eor end |
#acos ⇒ Image
Return the inverse cosine of an image in degrees.
1148 1149 1150 |
# File 'lib/vips/image.rb', line 1148 def acos math :acos end |
#affine(matrix, opts = {}) ⇒ Vips::Image
Affine transform of an image.
|
|
# File 'lib/vips/methods.rb', line 1498
|
#asin ⇒ Image
Return the inverse sine of an image in degrees.
1141 1142 1143 |
# File 'lib/vips/image.rb', line 1141 def asin math :asin end |
#atan ⇒ Image
Return the inverse tangent of an image in degrees.
1155 1156 1157 |
# File 'lib/vips/image.rb', line 1155 def atan math :atan end |
#autorot(opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Autorotate image by exif tag.
|
|
# File 'lib/vips/methods.rb', line 440
|
#avg(opts = {}) ⇒ Float
Find image average.
|
|
# File 'lib/vips/methods.rb', line 159
|
#bandand ⇒ Image
AND the bands of an image together
969 970 971 |
# File 'lib/vips/image.rb', line 969 def bandand bandbool :and end |
#bandbool(boolean, opts = {}) ⇒ Vips::Image
Boolean operation across image bands.
|
|
# File 'lib/vips/methods.rb', line 408
|
#bandeor ⇒ Image
EOR the bands of an image together
983 984 985 |
# File 'lib/vips/image.rb', line 983 def bandeor bandbool :eor end |
#bandfold(opts = {}) ⇒ Vips::Image
Fold up x axis into bands.
|
|
# File 'lib/vips/methods.rb', line 452
|
#bandjoin(other) ⇒ Image
Join a set of images bandwise.
998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 |
# File 'lib/vips/image.rb', line 998 def bandjoin other if not other.is_a? Array other = [other] end # if other is just Numeric, we can use bandjoin_const not_all_real = (other.map {|x| not x.is_a?(Numeric)}).include?(true) 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.
|
|
# File 'lib/vips/methods.rb', line 390
|
#bandor ⇒ Image
OR the bands of an image together
976 977 978 |
# File 'lib/vips/image.rb', line 976 def bandor bandbool :or end |
#bands ⇒ Integer
Get number of image bands.
624 625 626 |
# File 'lib/vips/image.rb', line 624 def bands get "bands" end |
#bandsplit ⇒ Array<Image>
Split an n-band image into n separate images.
990 991 992 |
# File 'lib/vips/image.rb', line 990 def bandsplit (0...bands).map {|i| extract_band(i)} end |
#bandunfold(opts = {}) ⇒ Vips::Image
Unfold image bands into x axis.
|
|
# File 'lib/vips/methods.rb', line 458
|
#boolean(right, boolean, opts = {}) ⇒ Vips::Image
Boolean operation on two images.
|
|
# File 'lib/vips/methods.rb', line 52
|
#boolean_const(boolean, c, opts = {}) ⇒ Vips::Image
Boolean operations against a constant.
|
|
# File 'lib/vips/methods.rb', line 133
|
#ceil ⇒ Image
Return the smallest integral value not less than the argument.
955 956 957 |
# File 'lib/vips/image.rb', line 955 def ceil round :ceil end |
#coding ⇒ Symbol
Get image coding.
645 646 647 |
# File 'lib/vips/image.rb', line 645 def coding get "coding" end |
#colourspace(space, opts = {}) ⇒ Vips::Image
Convert to a new colorspace.
|
|
# File 'lib/vips/methods.rb', line 1531
|
#compass(mask, opts = {}) ⇒ Vips::Image
Convolve with rotating mask.
|
|
# File 'lib/vips/methods.rb', line 1807
|
#complex(cmplx, opts = {}) ⇒ Vips::Image
Perform a complex operation on an image.
|
|
# File 'lib/vips/methods.rb', line 147
|
#complex2(right, cmplx, opts = {}) ⇒ Vips::Image
Complex binary operations on two images.
|
|
# File 'lib/vips/methods.rb', line 66
|
#complexform(right, opts = {}) ⇒ Vips::Image
Form a complex image from two real images.
|
|
# File 'lib/vips/methods.rb', line 73
|
#complexget(get, opts = {}) ⇒ Vips::Image
Get a component from a complex image.
|
|
# File 'lib/vips/methods.rb', line 153
|
#conj ⇒ Image
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.
1105 1106 1107 |
# File 'lib/vips/image.rb', line 1105 def conj Image::run_cmplx(self) {|x| x.complex :conj} end |
#conva(mask, opts = {}) ⇒ Vips::Image
Approximate integer convolution.
|
|
# File 'lib/vips/methods.rb', line 1787
|
#convasep(mask, opts = {}) ⇒ Vips::Image
Approximate separable integer convolution.
|
|
# File 'lib/vips/methods.rb', line 1828
|
#convf(mask, opts = {}) ⇒ Vips::Image
Float convolution operation.
|
|
# File 'lib/vips/methods.rb', line 1795
|
#convi(mask, opts = {}) ⇒ Vips::Image
Int convolution operation.
|
|
# File 'lib/vips/methods.rb', line 1801
|
#convsep(mask, opts = {}) ⇒ Vips::Image
Seperable convolution operation.
|
|
# File 'lib/vips/methods.rb', line 1819
|
#copy_memory ⇒ Object
709 710 711 712 |
# File 'lib/vips/image.rb', line 709 def copy_memory new_image = Vips::vips_image_copy_memory self Vips::Image.new new_image end |
#cos ⇒ Image
Return the cosine of an image in degrees.
1127 1128 1129 |
# File 'lib/vips/image.rb', line 1127 def cos math :cos end |
#countlines(direction, opts = {}) ⇒ Float
Count lines in an image.
|
|
# File 'lib/vips/methods.rb', line 1909
|
#cross_phase(other) ⇒ Image
Calculate the cross phase of two images.
1113 1114 1115 |
# File 'lib/vips/image.rb', line 1113 def cross_phase other complex2 other, :cross_phase end |
#csvsave(filename, opts = {}) ⇒ nil
Save image to csv file.
|
|
# File 'lib/vips/methods.rb', line 1150
|
#deviate(opts = {}) ⇒ Float
Find image standard deviation.
|
|
# 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.
1221 1222 1223 |
# File 'lib/vips/image.rb', line 1221 def dilate mask morph mask, :dilate end |
#draw_circle(ink, cx, cy, radius, opts = {}) ⇒ Vips::Image
Draw a circle on an image.
|
|
# File 'lib/vips/methods.rb', line 1951
|
#draw_flood(ink, x, y, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Flood-fill an area.
|
|
# File 'lib/vips/methods.rb', line 1961
|
#draw_image(sub, x, y, opts = {}) ⇒ Vips::Image
Paint an image into another image.
|
|
# File 'lib/vips/methods.rb', line 1975
|
#draw_line(ink, x1, y1, x2, y2, opts = {}) ⇒ Vips::Image
Draw a line on an image.
|
|
# File 'lib/vips/methods.rb', line 1941
|
#draw_mask(ink, mask, x, y, opts = {}) ⇒ Vips::Image
Draw a mask on an image.
|
|
# File 'lib/vips/methods.rb', line 1932
|
#draw_rect(ink, left, top, width, height, opts = {}) ⇒ Vips::Image
Paint a rectangle on an image.
|
|
# File 'lib/vips/methods.rb', line 1921
|
#draw_smudge(left, top, width, height, opts = {}) ⇒ Vips::Image
Blur a rectangle on an image.
|
|
# File 'lib/vips/methods.rb', line 1984
|
#dzsave(filename, opts = {}) ⇒ nil
Save image to deepzoom file.
|
|
# File 'lib/vips/methods.rb', line 1223
|
#dzsave_buffer(opts = {}) ⇒ VipsBlob
Save image to dz buffer.
|
|
# File 'lib/vips/methods.rb', line 1242
|
#embed(x, y, width, height, opts = {}) ⇒ Vips::Image
Embed an image in a larger image.
|
|
# File 'lib/vips/methods.rb', line 306
|
#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.
1209 1210 1211 |
# File 'lib/vips/image.rb', line 1209 def erode mask morph mask, :erode end |
#exp ⇒ Image
Return e ** pixel.
1176 1177 1178 |
# File 'lib/vips/image.rb', line 1176 def exp math :exp end |
#exp10 ⇒ Image
Return 10 ** pixel.
1183 1184 1185 |
# File 'lib/vips/image.rb', line 1183 def exp10 math :exp10 end |
#extract_area(left, top, width, height, opts = {}) ⇒ Vips::Image
Extract an area from an image.
|
|
# File 'lib/vips/methods.rb', line 357
|
#extract_band(band, opts = {}) ⇒ Vips::Image
Extract band from an image.
|
|
# File 'lib/vips/methods.rb', line 383
|
#filename ⇒ String
Get image filename, if any.
652 653 654 |
# File 'lib/vips/image.rb', line 652 def filename get "filename" end |
#fitssave(filename, opts = {}) ⇒ nil
Save image to fits file.
|
|
# File 'lib/vips/methods.rb', line 1404
|
#flatten(opts = {}) ⇒ Vips::Image
Flatten alpha out of an image.
|
|
# File 'lib/vips/methods.rb', line 464
|
#fliphor ⇒ Image
Flip horizontally.
1190 1191 1192 |
# File 'lib/vips/image.rb', line 1190 def fliphor flip :horizontal end |
#flipver ⇒ Image
Flip vertically.
1197 1198 1199 |
# File 'lib/vips/image.rb', line 1197 def flipver flip :vertical end |
#float2rad(opts = {}) ⇒ Vips::Image
Transform float rgb to radiance coding.
|
|
# File 'lib/vips/methods.rb', line 1625
|
#floor ⇒ Image
Return the largest integral value not greater than the argument.
948 949 950 |
# File 'lib/vips/image.rb', line 948 def floor round :floor end |
#format ⇒ Symbol
Get image format.
631 632 633 |
# File 'lib/vips/image.rb', line 631 def format get "format" end |
#freqmult(mask, opts = {}) ⇒ Vips::Image
Frequency-domain filtering.
|
|
# File 'lib/vips/methods.rb', line 1877
|
#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.
504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 |
# File 'lib/vips/image.rb', line 504 def get name # with old libvips, we must fetch properties (as opposed to # metadata) via VipsObject unless Vips::version(0) > 8 or Vips::version(1) > 4 gtype = get_typeof_property name if gtype != 0 # found a property return super end end gvalue = GObject::GValue.alloc result = Vips::vips_image_get self, name, gvalue if result != 0 raise Vips::Error end return gvalue.get end |
#get_fields ⇒ [String]
Get the names of all fields on an image. Use this to loop over all image metadata.
528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 |
# File 'lib/vips/image.rb', line 528 def get_fields # vips_image_get_fields() was added in libvips 8.5 if not Vips.respond_to? :vips_image_get_fields return [] end 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 return names end |
#get_typeof(name) ⇒ Integer
Fetch a GType from an image. GType will be 0 for no such field.
475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 |
# File 'lib/vips/image.rb', line 475 def get_typeof name # libvips 8.5+ has a fast path for this if Vips::version(0) > 8 or Vips::version(1) > 4 Vips::vips_image_get_typeof self, name else # with older libvips, we have to look in properties first, then # fall back to metadata gtype = get_typeof_property name if gtype != 0 gtype else Vips::vips_image_get_typeof self, name end end end |
#get_value(name) ⇒ Object
compatibility: old name for get
598 599 600 |
# File 'lib/vips/image.rb', line 598 def get_value name get name end |
#getpoint(x, y, opts = {}) ⇒ Array<Double>
Read a point from an image.
1040 1041 1042 1043 1044 1045 1046 1047 |
# File 'lib/vips/image.rb', line 1040 def getpoint x, y # vips has an operation that does this, but we can't call it via # gobject-introspection 3.1 since it's missing array double # get # # remove this def when gobject-introspection updates crop(x, y, 1, 1).bandsplit.map(&:avg) end |
#globalbalance(opts = {}) ⇒ Vips::Image
Global balance an image mosaic.
|
|
# File 'lib/vips/methods.rb', line 2063
|
#grid(tile_height, across, down, opts = {}) ⇒ Vips::Image
Grid an image.
|
|
# File 'lib/vips/methods.rb', line 483
|
#height ⇒ Integer
Get image height, in pixels.
617 618 619 |
# File 'lib/vips/image.rb', line 617 def height get "height" end |
#hist_cum(opts = {}) ⇒ Vips::Image
Form cumulative histogram.
|
|
# File 'lib/vips/methods.rb', line 1733
|
#hist_entropy(opts = {}) ⇒ Float
Estimate image entropy.
|
|
# File 'lib/vips/methods.rb', line 1773
|
#hist_equal(opts = {}) ⇒ Vips::Image
Histogram equalisation.
|
|
# File 'lib/vips/methods.rb', line 1749
|
#hist_find_indexed(index, opts = {}) ⇒ Vips::Image
Find indexed image histogram.
|
|
# File 'lib/vips/methods.rb', line 208
|
#hist_find_ndim(opts = {}) ⇒ Vips::Image
Find n-dimensional image histogram.
|
|
# File 'lib/vips/methods.rb', line 202
|
#hist_ismonotonic(opts = {}) ⇒ Boolean
Test for monotonicity.
|
|
# File 'lib/vips/methods.rb', line 1768
|
#hist_local(width, height, opts = {}) ⇒ Vips::Image
Local histogram equalisation.
|
|
# File 'lib/vips/methods.rb', line 1760
|
#hist_match(ref, opts = {}) ⇒ Vips::Image
Match two histograms.
|
|
# File 'lib/vips/methods.rb', line 1738
|
#hough_circle(opts = {}) ⇒ Vips::Image
Find hough circle transform.
|
|
# File 'lib/vips/methods.rb', line 221
|
#hough_line(opts = {}) ⇒ Vips::Image
Find hough line transform.
|
|
# File 'lib/vips/methods.rb', line 214
|
#icc_export(opts = {}) ⇒ Vips::Image
Output to device with icc profile.
|
|
# File 'lib/vips/methods.rb', line 1654
|
#icc_import(opts = {}) ⇒ Vips::Image
Import from device with icc profile.
|
|
# File 'lib/vips/methods.rb', line 1645
|
#icc_transform(output_profile, opts = {}) ⇒ Vips::Image
Transform between devices with icc profiles.
|
|
# File 'lib/vips/methods.rb', line 1663
|
#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.
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 |
# File 'lib/vips/image.rb', line 1255 def ifthenelse(th, el, opts = {}) match_image = [th, el, self].find {|x| x.is_a? Vips::Image} if not th.is_a? Vips::Image th = Operation.imageize match_image, th end if not el.is_a? Vips::Image el = Operation.imageize match_image, el end Vips::Operation.call "ifthenelse", [self, th, el], opts end |
#imag ⇒ Image
Return the imaginary part of a complex image.
1067 1068 1069 |
# File 'lib/vips/image.rb', line 1067 def imag complexget :imag end |
#insert(sub, x, y, opts = {}) ⇒ Vips::Image
Insert image @sub into @main at @x, @y.
|
|
# File 'lib/vips/methods.rb', line 323
|
#inspect ⇒ Object
162 163 164 165 |
# File 'lib/vips/image.rb', line 162 def inspect "#<Image #{width}x#{height} #{format}, #{bands} bands, " + "#{interpretation}>" end |
#interpretation ⇒ Symbol
Get image interpretation.
638 639 640 |
# File 'lib/vips/image.rb', line 638 def interpretation get "interpretation" end |
#invertlut(opts = {}) ⇒ Vips::Image
Build an inverted look-up table.
|
|
# File 'lib/vips/methods.rb', line 769
|
#join(in2, direction, opts = {}) ⇒ Vips::Image
Join a pair of images.
|
|
# File 'lib/vips/methods.rb', line 333
|
#jpegsave(filename, opts = {}) ⇒ nil
Save image to jpeg file.
|
|
# File 'lib/vips/methods.rb', line 1283
|
#jpegsave_buffer(opts = {}) ⇒ VipsBlob
Save image to jpeg buffer.
|
|
# File 'lib/vips/methods.rb', line 1300
|
#jpegsave_mime(opts = {}) ⇒ nil
Save image to jpeg mime.
|
|
# File 'lib/vips/methods.rb', line 1316
|
#Lab2LabQ(opts = {}) ⇒ Vips::Image
Transform float lab to labq coding.
|
|
# File 'lib/vips/methods.rb', line 1595
|
#Lab2LabS(opts = {}) ⇒ Vips::Image
Transform float lab to signed short.
|
|
# File 'lib/vips/methods.rb', line 1615
|
#labelregions(opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Label regions in an image.
|
|
# File 'lib/vips/methods.rb', line 1915
|
#LabQ2Lab(opts = {}) ⇒ Vips::Image
Unpack a labq image to float lab.
|
|
# File 'lib/vips/methods.rb', line 1590
|
#LabQ2LabS(opts = {}) ⇒ Vips::Image
Unpack a labq image to short lab.
|
|
# File 'lib/vips/methods.rb', line 1600
|
#LabQ2sRGB(opts = {}) ⇒ Vips::Image
Convert a labq image to srgb.
|
|
# File 'lib/vips/methods.rb', line 1630
|
#LabS2Lab(opts = {}) ⇒ Vips::Image
Transform signed short lab to float.
|
|
# File 'lib/vips/methods.rb', line 1610
|
#LabS2LabQ(opts = {}) ⇒ Vips::Image
Transform short lab to labq coding.
|
|
# File 'lib/vips/methods.rb', line 1605
|
#linear(a, b, opts = {}) ⇒ Vips::Image
Calculate (a * in + b).
|
|
# File 'lib/vips/methods.rb', line 90
|
#linecache(opts = {}) ⇒ Vips::Image
Cache an image as a set of lines.
|
|
# File 'lib/vips/methods.rb', line 283
|
#log ⇒ Image
Return the natural log of an image.
1162 1163 1164 |
# File 'lib/vips/image.rb', line 1162 def log math :log end |
#log10 ⇒ Image
Return the log base 10 of an image.
1169 1170 1171 |
# File 'lib/vips/image.rb', line 1169 def log10 math :log10 end |
#mapim(index, opts = {}) ⇒ Vips::Image
Resample with an mapim image.
|
|
# File 'lib/vips/methods.rb', line 1440
|
#maplut(lut, opts = {}) ⇒ Vips::Image
Map an image though a lut.
|
|
# File 'lib/vips/methods.rb', line 1709
|
#match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, opts = {}) ⇒ Vips::Image
First-order match of two images.
|
|
# File 'lib/vips/methods.rb', line 2045
|
#math(math, opts = {}) ⇒ Vips::Image
Apply a math operation to an image.
|
|
# File 'lib/vips/methods.rb', line 98
|
#math2(right, math2, opts = {}) ⇒ Vips::Image
Binary math operations.
|
|
# File 'lib/vips/methods.rb', line 59
|
#math2_const(math2, c, opts = {}) ⇒ Vips::Image
Binary math operations with a constant.
|
|
# File 'lib/vips/methods.rb', line 140
|
#matrixprint(opts = {}) ⇒ nil
Print matrix.
|
|
# File 'lib/vips/methods.rb', line 1167
|
#matrixsave(filename, opts = {}) ⇒ nil
Save image to matrix file.
|
|
# File 'lib/vips/methods.rb', line 1159
|
#max(opts = {}) ⇒ Float, Hash<Symbol => Object>
Find image maximum.
|
|
# File 'lib/vips/methods.rb', line 175
|
#maxpos ⇒ Real
Return the coordinates of the image maximum.
1017 1018 1019 1020 1021 1022 |
# File 'lib/vips/image.rb', line 1017 def maxpos v, opts = max x: true, y: true x = opts['x'] y = opts['y'] return v, x, y end |
#measure(h, v, opts = {}) ⇒ Vips::Image
Measure a set of patches on a color chart.
|
|
# File 'lib/vips/methods.rb', line 239
|
#median(size = 3) ⇒ Image
a median filter
1053 1054 1055 |
# File 'lib/vips/image.rb', line 1053 def median size = 3 rank size, size, (size * size) / 2 end |
#merge(sec, direction, dx, dy, opts = {}) ⇒ Vips::Image
Merge two images.
|
|
# File 'lib/vips/methods.rb', line 1993
|
#min(opts = {}) ⇒ Float, Hash<Symbol => Object>
Find image minimum.
|
|
# File 'lib/vips/methods.rb', line 164
|
#minpos ⇒ Real
Return the coordinates of the image minimum.
1028 1029 1030 1031 1032 1033 |
# File 'lib/vips/image.rb', line 1028 def minpos v, opts = min x: true, y: true x = opts['x'] y = opts['y'] return v, x, y end |
#morph(mask, morph, opts = {}) ⇒ Vips::Image
Morphology operation.
|
|
# File 'lib/vips/methods.rb', line 1894
|
#mosaic(sec, direction, xref, yref, xsec, ysec, opts = {}) ⇒ Vips::Image, Hash<Symbol => Object>
Mosaic two images.
|
|
# File 'lib/vips/methods.rb', line 2003
|
#mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, opts = {}) ⇒ Vips::Image
First-order mosaic of two images.
|
|
# File 'lib/vips/methods.rb', line 2024
|
#msb(opts = {}) ⇒ Vips::Image
Pick most-significant byte from an image.
|
|
# File 'lib/vips/methods.rb', line 513
|
#multiply(right, opts = {}) ⇒ Vips::Image
Multiply two images.
|
|
# File 'lib/vips/methods.rb', line 27
|
#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.
367 368 369 370 371 372 |
# File 'lib/vips/image.rb', line 367 def new_from_image value pixel = (Vips::Image.black(1, 1) + value).cast(format) image = pixel. 0, 0, width, height, extend: :copy image.copy interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset end |
#offset ⇒ Float
Get offset metadata.
696 697 698 699 700 |
# File 'lib/vips/image.rb', line 696 def offset return 0 if get_typeof("offset") == 0 get "offset" end |
#percent(percent, opts = {}) ⇒ Integer
Find threshold for percent of pixels.
|
|
# File 'lib/vips/methods.rb', line 1716
|
#phasecor(in2, opts = {}) ⇒ Vips::Image
Calculate phase correlation.
|
|
# File 'lib/vips/methods.rb', line 1888
|
#pngsave(filename, opts = {}) ⇒ nil
Save image to png file.
|
|
# File 'lib/vips/methods.rb', line 1260
|
#pngsave_buffer(opts = {}) ⇒ VipsBlob
Save image to png buffer.
|
|
# File 'lib/vips/methods.rb', line 1272
|
#polar ⇒ Image
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.
1080 1081 1082 |
# File 'lib/vips/image.rb', line 1080 def polar Image::run_cmplx(self) {|x| x.complex :polar} end |
#ppmsave(filename, opts = {}) ⇒ nil
Save image to ppm file.
|
|
# File 'lib/vips/methods.rb', line 1198
|
#premultiply(opts = {}) ⇒ Vips::Image
Premultiply image alpha.
|
|
# File 'lib/vips/methods.rb', line 471
|
#profile(opts = {}) ⇒ Array<] First non-zero pixel in column, First non-zero pixel in row
Find image profiles.
|
|
# File 'lib/vips/methods.rb', line 234
|
#project(opts = {}) ⇒ Array<] Sums of columns, Sums of rows
Find image projections.
|
|
# File 'lib/vips/methods.rb', line 229
|
#quadratic(coeff, opts = {}) ⇒ Vips::Image
Resample an image with a quadratic transform.
|
|
# File 'lib/vips/methods.rb', line 1491
|
#rad2float(opts = {}) ⇒ Vips::Image
Unpack radiance coding to float rgb.
|
|
# File 'lib/vips/methods.rb', line 1620
|
#radsave(filename, opts = {}) ⇒ nil
Save image to radiance file.
|
|
# File 'lib/vips/methods.rb', line 1208
|
#radsave_buffer(opts = {}) ⇒ VipsBlob
Save image to radiance buffer.
|
|
# File 'lib/vips/methods.rb', line 1216
|
#rank(width, height, index, opts = {}) ⇒ Vips::Image
Rank filter.
|
|
# File 'lib/vips/methods.rb', line 1901
|
#rawsave(filename, opts = {}) ⇒ nil
Save image to raw file.
|
|
# File 'lib/vips/methods.rb', line 1174
|
#rawsave_fd(fd, opts = {}) ⇒ nil
Write raw image to file descriptor.
|
|
# File 'lib/vips/methods.rb', line 1182
|
#real ⇒ Image
Return the real part of a complex image.
1060 1061 1062 |
# File 'lib/vips/image.rb', line 1060 def real complexget :real end |
#recomb(m, opts = {}) ⇒ Vips::Image
Linear recombination with matrix.
|
|
# File 'lib/vips/methods.rb', line 446
|
#rect ⇒ Image
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.
1093 1094 1095 |
# File 'lib/vips/image.rb', line 1093 def rect Image::run_cmplx(self) {|x| x.complex :rect} end |
#reduce(hshrink, vshrink, opts = {}) ⇒ Vips::Image
Reduce an image.
|
|
# File 'lib/vips/methods.rb', line 1482
|
#reduceh(hshrink, opts = {}) ⇒ Vips::Image
Shrink an image horizontally.
|
|
# File 'lib/vips/methods.rb', line 1466
|
#reducev(vshrink, opts = {}) ⇒ Vips::Image
Shrink an image vertically.
|
|
# File 'lib/vips/methods.rb', line 1474
|
#relational(right, relational, opts = {}) ⇒ Vips::Image
Relational operation on two images.
|
|
# File 'lib/vips/methods.rb', line 39
|
#relational_const(relational, c, opts = {}) ⇒ Vips::Image
Relational operations against a constant.
|
|
# File 'lib/vips/methods.rb', line 120
|
#remainder(right, opts = {}) ⇒ Vips::Image
Remainder after integer division of two images.
|
|
# File 'lib/vips/methods.rb', line 46
|
#remainder_const(c, opts = {}) ⇒ Vips::Image
Remainder after integer division of an image and a constant.
|
|
# File 'lib/vips/methods.rb', line 127
|
#remove(name) ⇒ Object
Remove a metadata item from an image.
593 594 595 |
# File 'lib/vips/image.rb', line 593 def remove name Vips::vips_image_remove self, name end |
#replicate(across, down, opts = {}) ⇒ Vips::Image
Replicate an image.
|
|
# File 'lib/vips/methods.rb', line 414
|
#respond_to?(name, include_all = false) ⇒ Boolean
167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/vips/image.rb', line 167 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 # respond to all vips operations by nickname return true if Vips::type_find("VipsOperation", name.to_s) != 0 super end |
#rint ⇒ Image
Return the nearest integral value.
962 963 964 |
# File 'lib/vips/image.rb', line 962 def rint round :rint end |
#rot180 ⇒ Image
Rotate by 180 degrees clockwise.
1235 1236 1237 |
# File 'lib/vips/image.rb', line 1235 def rot180 rot :d180 end |
#rot270 ⇒ Image
Rotate by 270 degrees clockwise.
1242 1243 1244 |
# File 'lib/vips/image.rb', line 1242 def rot270 rot :d270 end |
#rot90 ⇒ Image
Rotate by 90 degrees clockwise.
1228 1229 1230 |
# File 'lib/vips/image.rb', line 1228 def rot90 rot :d90 end |
#round(round, opts = {}) ⇒ Vips::Image
Perform a round function on an image.
|
|
# File 'lib/vips/methods.rb', line 114
|
#scale ⇒ Float
Get scale metadata.
687 688 689 690 691 |
# File 'lib/vips/image.rb', line 687 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.
1273 1274 1275 |
# File 'lib/vips/image.rb', line 1273 def scaleimage opts = {} Vips::Image.scale self, opts end |
#scRGB2sRGB(opts = {}) ⇒ Vips::Image
Convert an scrgb image to srgb.
|
|
# File 'lib/vips/methods.rb', line 1703
|
#sequential(opts = {}) ⇒ Vips::Image
Check sequential access.
|
|
# File 'lib/vips/methods.rb', line 292
|
#set(name, value) ⇒ Object
Set the value of a metadata item on an image. The metadata item must
already exist. Ruby types are automatically
transformed into the matching GValue, if possible.
For example, you can use this to set an image's ICC profile:
x = y.set "icc-profile-data", profile
where profile is an ICC profile held as a binary string object.
586 587 588 |
# File 'lib/vips/image.rb', line 586 def set name, value set_type get_typeof(name), name, value end |
#set_type(gtype, name, value) ⇒ Object
Create a metadata item on an image, of the specifed type. Ruby types
are automatically
transformed into the matching GType, if possible.
For example, you can use this to set an image's ICC profile:
x = y.set Vips::BLOB_TYPE, "icc-profile-data", profile
where profile is an ICC profile held as a binary string object.
564 565 566 567 568 569 |
# File 'lib/vips/image.rb', line 564 def set_type gtype, name, value gvalue = GObject::GValue.alloc gvalue.init gtype gvalue.set value Vips::vips_image_set self, name, gvalue end |
#set_value(name, value) ⇒ Object
compatibility: old name for set
603 604 605 |
# File 'lib/vips/image.rb', line 603 def set_value name, value set name, value end |
#sharpen(opts = {}) ⇒ Vips::Image
Unsharp masking for print.
|
|
# File 'lib/vips/methods.rb', line 1847
|
#shrink(hshrink, vshrink, opts = {}) ⇒ Vips::Image
Shrink an image.
|
|
# File 'lib/vips/methods.rb', line 1447
|
#shrinkh(hshrink, opts = {}) ⇒ Vips::Image
Shrink an image horizontally.
|
|
# File 'lib/vips/methods.rb', line 1454
|
#shrinkv(vshrink, opts = {}) ⇒ Vips::Image
Shrink an image vertically.
|
|
# File 'lib/vips/methods.rb', line 1460
|
#similarity(opts = {}) ⇒ Vips::Image
Similarity transform of an image.
|
|
# File 'lib/vips/methods.rb', line 1510
|
#sin ⇒ Image
Return the sine of an image in degrees.
1120 1121 1122 |
# File 'lib/vips/image.rb', line 1120 def sin math :sin end |
#size ⇒ Integer
Get the image size.
705 706 707 |
# File 'lib/vips/image.rb', line 705 def size [width, height] end |
#smartcrop(width, height, opts = {}) ⇒ Vips::Image
Extract an area from an image.
|
|
# File 'lib/vips/methods.rb', line 375
|
#spectrum(opts = {}) ⇒ Vips::Image
Make displayable power spectrum.
|
|
# File 'lib/vips/methods.rb', line 1883
|
#sRGB2scRGB(opts = {}) ⇒ Vips::Image
Convert an srgb image to scrgb.
|
|
# File 'lib/vips/methods.rb', line 1692
|
#stdif(width, height, opts = {}) ⇒ Vips::Image
Statistical difference.
|
|
# File 'lib/vips/methods.rb', line 1722
|
#subsample(xfac, yfac, opts = {}) ⇒ Vips::Image
Subsample an image.
|
|
# File 'lib/vips/methods.rb', line 505
|
#subtract(right, opts = {}) ⇒ Vips::Image
Subtract two images.
|
|
# File 'lib/vips/methods.rb', line 21
|
#tan ⇒ Image
Return the tangent of an image in degrees.
1134 1135 1136 |
# File 'lib/vips/image.rb', line 1134 def tan math :tan end |
#tiffsave(filename, opts = {}) ⇒ nil
Save image to tiff file.
|
|
# File 'lib/vips/methods.rb', line 1359
|
#tiffsave_buffer(opts = {}) ⇒ VipsBlob
Save image to tiff buffer.
|
|
# File 'lib/vips/methods.rb', line 1382
|
#tilecache(opts = {}) ⇒ Vips::Image
Cache an image as a set of tiles.
|
|
# File 'lib/vips/methods.rb', line 272
|
#to_a ⇒ Array
Convert to an Array. This will be slow for large images.
912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 |
# File 'lib/vips/image.rb', line 912 def to_a # we render the image to a big string, then unpack # as a Ruby array of the correct type memory = write_to_memory # 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] + '*' # and unpack into something like [1, 2, 3, 4 ..] array = memory.unpack(template) # gather band elements together pixel_array = [] array.each_slice(bands) {|pixel| pixel_array << pixel} # build rows row_array = [] pixel_array.each_slice(width) {|row| row_array << row} return row_array end |
#unpremultiply(opts = {}) ⇒ Vips::Image
Unpremultiply image alpha.
|
|
# File 'lib/vips/methods.rb', line 477
|
#vipssave(filename, opts = {}) ⇒ nil
Save image to vips file.
|
|
# File 'lib/vips/methods.rb', line 1190
|
#webpsave(filename, opts = {}) ⇒ nil
Save image to webp file.
|
|
# File 'lib/vips/methods.rb', line 1332
|
#webpsave_buffer(opts = {}) ⇒ VipsBlob
Save image to webp buffer.
|
|
# File 'lib/vips/methods.rb', line 1346
|
#width ⇒ Integer
Get image width, in pixels.
610 611 612 |
# File 'lib/vips/image.rb', line 610 def width get "width" end |
#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.
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 |
# File 'lib/vips/image.rb', line 441 def write_to_buffer format_string, opts = {} filename = Vips::vips_filename_get_filename format_string option_string = Vips:: format_string saver = Vips::vips_foreign_find_save_buffer filename if saver == nil raise Vips::Error, "No known saver for '#{filename}'." end buffer = Vips::Operation.call saver, [self], opts, option_string raise Vips::Error if buffer == nil write_gc return 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.
403 404 405 406 407 408 409 410 411 412 413 414 |
# File 'lib/vips/image.rb', line 403 def write_to_file name, opts = {} filename = Vips::vips_filename_get_filename name option_string = Vips:: name saver = Vips::vips_foreign_find_save filename if saver == nil raise Vips::Error, "No known saver for '#{filename}'." end Vips::Operation.call saver, [self, filename], opts, option_string write_gc end |
#write_to_memory ⇒ String
Write this image to a large memory buffer.
460 461 462 463 464 465 466 467 468 |
# File 'lib/vips/image.rb', line 460 def write_to_memory len = Vips::SizeStruct.new ptr = Vips::vips_image_write_to_memory self, len # wrap up as an autopointer ptr = FFI::AutoPointer.new(ptr, GLib::G_FREE) ptr.get_bytes 0, len[:value] end |
#xoffset ⇒ Integer
Get image xoffset.
659 660 661 |
# File 'lib/vips/image.rb', line 659 def xoffset get "xoffset" end |
#xres ⇒ Float
Get image x resolution.
673 674 675 |
# File 'lib/vips/image.rb', line 673 def xres get "xres" end |
#yoffset ⇒ Integer
Get image yoffset.
666 667 668 |
# File 'lib/vips/image.rb', line 666 def yoffset get "yoffset" end |
#yres ⇒ Float
Get image y resolution.
680 681 682 |
# File 'lib/vips/image.rb', line 680 def yres get "yres" end |
#|(other) ⇒ Image
Integer bitwise OR with an image, constant or array.
787 788 789 |
# File 'lib/vips/image.rb', line 787 def | other call_enum "boolean", other, :or end |
#~ ⇒ Image
Equivalent to image ^ -1
817 818 819 |
# File 'lib/vips/image.rb', line 817 def ~ self ^ -1 end |