Vix.Vips.Image (vix v0.7.0) View Source

Vips Image

Link to this section Summary

Types

t()

Represents an instance of VipsImage

Functions

Get bands of the the image

Get coding of the the image

Get filename of the the image

Get format of the the image

Get all image header field names.

Get image header value.

Get image header value as string.

Get height of the the image

Get interpretation of the the image

Get mode of the the image

Mutate an image in-place. You have to pass a function which takes MutableImage as argument. Inside the callback function, you can call functions which modify the image, such as setting or removing metadata. See Vix.Vips.MutableImage

Get n_pages of the the image

Opens path for reading, returns an instance of Vix.Vips.Image.t/0

Creates a new image with width, height, format, interpretation, resolution and offset taken from the input image, but with each band set from value.

Make a VipsImage which, when written to, will create a temporary file on disc.

Get offset of the the image

Get orientation of the the image

Get page_height of the the image

Get scale of the the image

Get width of the the image

Returns vips_image as binary based on the format specified by suffix. This function is similar to write_to_file but instead of writing the output to the file, it returns it as a binary.

Write vips_image to a file.

Get xoffset of the the image

Get xres of the the image

Get yoffset of the the image

Get yres of the the image

Link to this section Types

Specs

t() :: %Vix.Vips.Image{ref: reference()}

Represents an instance of VipsImage

Link to this section Functions

Specs

bands(t()) :: term() | no_return()

Get bands of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-bands

Specs

coding(t()) :: term() | no_return()

Get coding of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-coding

Specs

filename(t()) :: term() | no_return()

Get filename of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-filename

Specs

format(t()) :: term() | no_return()

Get format of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-format

Link to this function

header_field_names(image)

View Source

Specs

header_field_names(t()) :: {:ok, [String.t()]} | {:error, term()}

Get all image header field names.

See https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-fields for more details

Link to this function

header_value(image, name)

View Source

Specs

header_value(t(), String.t()) ::
  {:ok, integer() | float() | String.t() | binary() | list()} | {:error, term()}

Get image header value.

This is a generic function to get header value.

Casts the value to appropriate type. Returned value can be integer, float, string, binary, list. Use Vix.Vips.Image.header_value_as_string/2 to get string representation of any header value.

{:ok, width} = Image.header_value(vips_image, "width")
Link to this function

header_value_as_string(image, name)

View Source

Specs

header_value_as_string(t(), String.t()) :: {:ok, String.t()} | {:error, term()}

Get image header value as string.

This is generic method to get string representation of a header value. If value is VipsBlob, then it returns base64 encoded data.

See: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-as-string

Specs

height(t()) :: term() | no_return()

Get height of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-height

Link to this function

interpretation(vips_image)

View Source

Specs

interpretation(t()) :: term() | no_return()

Get interpretation of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-interpretation

Specs

mode(t()) :: term() | no_return()

Get mode of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-mode

Specs

mutate(t(), (Vix.Vips.MutableImage.t() -> any())) ::
  {:ok, t()} | {:error, term()}

Mutate an image in-place. You have to pass a function which takes MutableImage as argument. Inside the callback function, you can call functions which modify the image, such as setting or removing metadata. See Vix.Vips.MutableImage

Return value of the callback is ignored.

Call returns updated image.

Example

  {:ok, im} = Image.new_from_file("puppies.jpg")

  {:ok, new_im} =
    Image.mutate(im, fn mut_image ->
      :ok = MutableImage.update(mut_image, "orientation", 0)
      :ok = MutableImage.set(mut_image, "new-field", :gint, 0)
    end)

Specs

n_pages(t()) :: term() | no_return()

Get n_pages of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-n-pages

Specs

new_from_file(String.t()) :: {:ok, t()} | {:error, term()}

Opens path for reading, returns an instance of Vix.Vips.Image.t/0

It can load files in many image formats, including VIPS, TIFF, PNG, JPEG, FITS, Matlab, OpenEXR, CSV, WebP, Radiance, RAW, PPM and others.

Load options may be appended to filename as "[name=value,...]". For example:

Image.new_from_file("fred.jpg[shrink=2]")

Will open "fred.jpg", downsampling by a factor of two.

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.

If you want more control over the loader, Use specifc format loader from Vix.Vips.Operation. For example for jpeg use Vix.Vips.Operation.jpegload/2

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.

Link to this function

new_from_image(image, value)

View Source

Specs

new_from_image(t(), [float()]) :: {:ok, t()} | {:error, term()}

Creates a new image with width, height, format, interpretation, resolution and offset taken from the input image, but with each band set from value.

Link to this function

new_matrix_from_array(width, height, list, optional \\ [])

View Source

Specs

new_matrix_from_array(integer(), integer(), [list()], keyword()) ::
  {:ok, t()} | {:error, term()}

Make a VipsImage from list.

This convenience function makes an image which is a matrix: a one-band VIPS_FORMAT_DOUBLE image held in memory. Useful for vips operations such as conv.

mask = Image.new_matrix_from_array(3, 3, [[0, 1, 0], [1, 1, 1], [0, 1, 0]])

Optional

  • scale - Default: 1
  • offset - Default: 0

Specs

new_temp_file(String.t()) :: {:ok, t()} | {:error, term()}

Make a VipsImage which, when written to, will create a temporary file on disc.

The file will be automatically deleted when the image is destroyed. format is something like "%s.v" for a vips file.

The file is created in the temporary directory. This is set with the environment variable TMPDIR. If this is not set, then on Unix systems, vips will default to /tmp. On Windows, vips uses GetTempPath() to find the temporary directory.

vips_image = Image.new_temp_file("%s.v")

Specs

offset(t()) :: term() | no_return()

Get offset of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-offset

Specs

orientation(t()) :: term() | no_return()

Get orientation of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-orientation

Specs

page_height(t()) :: term() | no_return()

Get page_height of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-page-height

Specs

scale(t()) :: term() | no_return()

Get scale of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-scale

Specs

width(t()) :: term() | no_return()

Get width of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-width

Link to this function

write_to_buffer(image, suffix)

View Source

Specs

write_to_buffer(t(), String.t()) :: {:ok, binary()} | {:error, term()}

Returns vips_image as binary based on the format specified by suffix. This function is similar to write_to_file but instead of writing the output to the file, it returns it as a binary.

Currently only TIFF, JPEG and PNG formats are supported.

Save options may be encoded in the filename or given as a hash. For example:

Image.write_to_buffer(vips_image, ".jpg[Q=90]")

The full set of save options depend on the selected saver. You can get list of available options for the saver

$ vips jpegsave
Link to this function

write_to_file(image, path)

View Source

Specs

write_to_file(t(), String.t()) :: :ok | {:error, term()}

Write vips_image to a file.

Save options may be encoded in the filename or given as a hash. For example:

Image.write_to_file(vips_image, "fred.jpg[Q=90]")

A saver is selected based on path. The full set of save options depend on the selected saver. Try something like:

$ vips jpegsave

at the command-line to see all the available options for JPEG save.

If you want more control over the saver, Use specifc format saver from Vix.Vips.Operation. For example for jpeg use Vix.Vips.Operation.jpegsave/2

Specs

xoffset(t()) :: term() | no_return()

Get xoffset of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-xoffset

Specs

xres(t()) :: term() | no_return()

Get xres of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-xres

Specs

yoffset(t()) :: term() | no_return()

Get yoffset of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-yoffset

Specs

yres(t()) :: term() | no_return()

Get yres of the the image

see: https://libvips.github.io/libvips/API/current/libvips-header.html#vips-image-get-yres