vips

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package vips provides go bindings for libvips, a fast image processing library.

Index

Constants

View Source
const DefaultFont = "sans 10"

DefaultFont is the default font to be used for label texts created by govips

View Source
const MajorVersion = int(C.VIPS_MAJOR_VERSION)

MajorVersion is the libvips major component of the version string (x in x.y.z)

View Source
const MicroVersion = int(C.VIPS_MICRO_VERSION)

MicroVersion is the libvips micro component of the version string (z in x.y.z) Also known as patch version

View Source
const MinorVersion = int(C.VIPS_MINOR_VERSION)

MinorVersion is the libvips minor component of the version string (y in x.y.z)

View Source
const Version = string(C.VIPS_VERSION)

Version is the full libvips version string (x.y.z)

Variables

View Source
var (
	// ErrUnsupportedImageFormat when image type is unsupported
	ErrUnsupportedImageFormat = errors.New("unsupported image format")
)
View Source
var GenericGrayGamma22ICCProfilePath = filepath.Join(temporaryDirectory, "generic_gray_gamma_2_2.icc")
View Source
var ImageTypes = map[ImageType]string{
	ImageTypeGIF:    "gif",
	ImageTypeJPEG:   "jpeg",
	ImageTypeMagick: "magick",
	ImageTypePDF:    "pdf",
	ImageTypePNG:    "png",
	ImageTypeSVG:    "svg",
	ImageTypeTIFF:   "tiff",
	ImageTypeWEBP:   "webp",
	ImageTypeHEIF:   "heif",
	ImageTypeBMP:    "bmp",
}

ImageTypes defines the various image types supported by govips

View Source
var SGrayV2MicroICCProfilePath = filepath.Join(temporaryDirectory, "sgray_v2_micro.icc")
View Source
var SRGBIEC6196621ICCProfilePath = filepath.Join(temporaryDirectory, "srgb_iec61966_2_1.icc")
View Source
var SRGBV2MicroICCProfilePath = filepath.Join(temporaryDirectory, "srgb_v2_micro.icc")

Functions

func ClearCache

func ClearCache()

ClearCache drops the whole operation cache, handy for leak tracking.

func IsTypeSupported

func IsTypeSupported(imageType ImageType) bool

IsTypeSupported checks whether given image type is supported by govips

func LoggingSettings added in v1.4.0

func LoggingSettings(handler LoggingHandlerFunction, verbosity LogLevel)

LoggingSettings sets the logging handler and logging verbosity for govips. The handler function is the function which will be called for each log message. You can define one yourself to log somewhere else besides the default (stderr). Use nil as handler to use standard logging handler. Verbosity is the minimum logLevel you want to log. Default is logLevelInfo due to backwards compatibility but it's quite verbose for a library. Suggest setting it to at least logLevelWarning. Use logLevelDebug for debugging.

func PrintCache

func PrintCache()

PrintCache prints the whole operation cache to stdout for debugging purposes.

func PrintObjectReport

func PrintObjectReport(label string)

PrintObjectReport outputs all of the current internal objects in libvips

func ReadRuntimeStats

func ReadRuntimeStats(stats *RuntimeStats)

ReadRuntimeStats returns operation counts for govips

func ReadVipsMemStats

func ReadVipsMemStats(stats *MemoryStats)

ReadVipsMemStats returns various memory statistics such as allocated memory and open files.

func Shutdown

func Shutdown()

Shutdown libvips

func ShutdownThread

func ShutdownThread()

ShutdownThread clears the cache for for the given thread. This needs to be called when a thread using vips exits.

func Startup

func Startup(config *Config)

Startup sets up the libvips support and ensures the versions are correct. Pass in nil for default configuration.

Types

type Align

type Align int

Align represents VIPS_ALIGN

const (
	AlignLow    Align = C.VIPS_ALIGN_LOW
	AlignCenter Align = C.VIPS_ALIGN_CENTRE
	AlignHigh   Align = C.VIPS_ALIGN_HIGH
)

Direction enum

type Angle

type Angle int

Angle represents VIPS_ANGLE type

const (
	Angle0   Angle = C.VIPS_ANGLE_D0
	Angle90  Angle = C.VIPS_ANGLE_D90
	Angle180 Angle = C.VIPS_ANGLE_D180
	Angle270 Angle = C.VIPS_ANGLE_D270
)

Angle enum

func GetRotationAngleFromExif

func GetRotationAngleFromExif(orientation int) (Angle, bool)

GetRotationAngleFromExif returns the angle which the image is currently rotated in. First returned value is the angle and second is a boolean indicating whether image is flipped. This is based on the EXIF orientation tag standard. If no proper orientation number is provided, the picture will be assumed to be upright.

type Angle45

type Angle45 int

Angle45 represents VIPS_ANGLE45 type

const (
	Angle45_0   Angle45 = C.VIPS_ANGLE45_D0
	Angle45_45  Angle45 = C.VIPS_ANGLE45_D45
	Angle45_90  Angle45 = C.VIPS_ANGLE45_D90
	Angle45_135 Angle45 = C.VIPS_ANGLE45_D135
	Angle45_180 Angle45 = C.VIPS_ANGLE45_D180
	Angle45_225 Angle45 = C.VIPS_ANGLE45_D225
	Angle45_270 Angle45 = C.VIPS_ANGLE45_D270
	Angle45_315 Angle45 = C.VIPS_ANGLE45_D315
)

Angle45 enum

type BandFormat

type BandFormat int

BandFormat represents VIPS_FORMAT type

const (
	BandFormatNotSet    BandFormat = C.VIPS_FORMAT_NOTSET
	BandFormatUchar     BandFormat = C.VIPS_FORMAT_UCHAR
	BandFormatChar      BandFormat = C.VIPS_FORMAT_CHAR
	BandFormatUshort    BandFormat = C.VIPS_FORMAT_USHORT
	BandFormatShort     BandFormat = C.VIPS_FORMAT_SHORT
	BandFormatUint      BandFormat = C.VIPS_FORMAT_UINT
	BandFormatInt       BandFormat = C.VIPS_FORMAT_INT
	BandFormatFloat     BandFormat = C.VIPS_FORMAT_FLOAT
	BandFormatComplex   BandFormat = C.VIPS_FORMAT_COMPLEX
	BandFormatDouble    BandFormat = C.VIPS_FORMAT_DOUBLE
	BandFormatDpComplex BandFormat = C.VIPS_FORMAT_DPCOMPLEX
)

BandFormat enum

type BlendMode

type BlendMode int

BlendMode gives the various Porter-Duff and PDF blend modes. See https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsBlendMode

Constants define the various Porter-Duff and PDF blend modes. See https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsBlendMode

type Coding

type Coding int

Coding represents VIPS_CODING type

const (
	CodingError Coding = C.VIPS_CODING_ERROR
	CodingNone  Coding = C.VIPS_CODING_NONE
	CodingLABQ  Coding = C.VIPS_CODING_LABQ
	CodingRAD   Coding = C.VIPS_CODING_RAD
)

Coding enum

type Color

type Color struct {
	R, G, B uint8
}

Color represents an RGB

type ColorRGBA added in v1.4.0

type ColorRGBA struct {
	R, G, B, A uint8
}

ColorRGBA represents an RGB with alpha channel (A)

type Config

type Config struct {
	ConcurrencyLevel int
	MaxCacheFiles    int
	MaxCacheMem      int
	MaxCacheSize     int
	ReportLeaks      bool
	CacheTrace       bool
	CollectStats     bool
}

Config allows fine-tuning of libvips library

type Direction

type Direction int

Direction represents VIPS_DIRECTION type

const (
	DirectionHorizontal Direction = C.VIPS_DIRECTION_HORIZONTAL
	DirectionVertical   Direction = C.VIPS_DIRECTION_VERTICAL
)

Direction enum

type ExportParams

type ExportParams struct {
	Format        ImageType
	Quality       int
	Compression   int
	Interlaced    bool
	Lossless      bool
	Effort        int
	StripMetadata bool
}

ExportParams are options when exporting an image to file or buffer. Deprecated: Use format-specific params

func NewDefaultExportParams added in v1.2.6

func NewDefaultExportParams() *ExportParams

NewDefaultExportParams creates default values for an export when image type is not JPEG, PNG or WEBP. By default, govips creates interlaced, lossy images with a quality of 80/100 and compression of 6/10. As these are default values for a wide variety of image formats, their application varies. Some formats use the quality parameters, some compression, etc. Deprecated: Use format-specific params

func NewDefaultJPEGExportParams added in v1.2.6

func NewDefaultJPEGExportParams() *ExportParams

NewDefaultJPEGExportParams creates default values for an export of a JPEG image. By default, govips creates interlaced JPEGs with a quality of 80/100. Deprecated: Use NewJpegExportParams

func NewDefaultPNGExportParams added in v1.2.6

func NewDefaultPNGExportParams() *ExportParams

NewDefaultPNGExportParams creates default values for an export of a PNG image. By default, govips creates non-interlaced PNGs with a compression of 6/10. Deprecated: Use NewPngExportParams

func NewDefaultWEBPExportParams added in v1.2.8

func NewDefaultWEBPExportParams() *ExportParams

NewDefaultWEBPExportParams creates default values for an export of a WEBP image. By default, govips creates lossy images with a quality of 75/100. Deprecated: Use NewWebpExportParams

type ExtendStrategy

type ExtendStrategy int

ExtendStrategy represents VIPS_EXTEND type

ExtendStrategy enum

type HeifExportParams added in v1.4.0

type HeifExportParams struct {
	Quality  int
	Lossless bool
}

HeifExportParams are options when exporting a HEIF to file or buffer

func NewHeifExportParams added in v1.4.0

func NewHeifExportParams() *HeifExportParams

NewHeifExportParams creates default values for an export of a HEIF image.

type ImageComposite added in v1.4.0

type ImageComposite struct {
	Image     *ImageRef
	BlendMode BlendMode
	X, Y      int
}

ImageComposite image to composite param

type ImageMetadata

type ImageMetadata struct {
	Format      ImageType
	Width       int
	Height      int
	Colorspace  Interpretation
	Orientation int
}

ImageMetadata is a data structure holding the width, height, orientation and other metadata of the picture.

type ImageRef

type ImageRef struct {
	// contains filtered or unexported fields
}

ImageRef contains a libvips image and manages its lifecycle. You need to close an image when done or it will leak

func Black added in v1.4.0

func Black(width, height int) (*ImageRef, error)

Black creates a new black image of the specified size

func Identity added in v1.4.0

func Identity(ushort bool) (*ImageRef, error)

Identity creates an identity lookup table, which will leave an image unchanged when applied with Maplut. Each entry in the table has a value equal to its position.

func NewImageFromBuffer

func NewImageFromBuffer(buf []byte) (*ImageRef, error)

NewImageFromBuffer loads an image buffer and creates a new Image

func NewImageFromFile

func NewImageFromFile(file string) (*ImageRef, error)

NewImageFromFile loads an image from file and creates a new ImageRef

func NewImageFromReader

func NewImageFromReader(r io.Reader) (*ImageRef, error)

NewImageFromReader loads an ImageRef from the given reader

func XYZ added in v1.4.0

func XYZ(width, height int) (*ImageRef, error)

XYZ creates a two-band uint32 image where the elements in the first band have the value of their x coordinate and elements in the second band have their y coordinate.

func (*ImageRef) Add added in v1.4.0

func (r *ImageRef) Add(addend *ImageRef) error

Add calculates a sum of the image + addend and stores it back in the image

func (*ImageRef) AddAlpha

func (r *ImageRef) AddAlpha() error

AddAlpha adds an alpha channel to the associated image.

func (*ImageRef) AutoRotate

func (r *ImageRef) AutoRotate() error

AutoRotate rotates the image upright based on the EXIF Orientation tag. It also resets the orientation information in the EXIF tag to be 1 (i.e. upright). N.B. libvips does not flip images currently (i.e. no support for orientations 2, 4, 5 and 7). N.B. due to the HEIF image standard, HEIF images are always autorotated by default on load. Thus, calling AutoRotate for HEIF images is not needed.

func (*ImageRef) Average added in v1.4.0

func (r *ImageRef) Average() (float64, error)

Average finds the average value in an image

func (*ImageRef) BandFormat

func (r *ImageRef) BandFormat() BandFormat

BandFormat returns the current band format

func (*ImageRef) BandJoin

func (r *ImageRef) BandJoin(images ...*ImageRef) error

BandJoin joins a set of images together, bandwise.

func (*ImageRef) BandJoinConst added in v1.4.0

func (r *ImageRef) BandJoinConst(constants []float64) error

BandJoinConst appends a set of constant bands to an image.

func (*ImageRef) Bands

func (r *ImageRef) Bands() int

Bands returns the number of bands for this image.

func (*ImageRef) Cast added in v1.4.0

func (r *ImageRef) Cast(format BandFormat) error

Cast converts the image to a target band format

func (*ImageRef) Close

func (r *ImageRef) Close()

Close is an empty function that does nothing. Images are automatically closed by GC. Deprecated: Please remove all Close() functions from your code as superfluous.

func (*ImageRef) Coding

func (r *ImageRef) Coding() Coding

Coding returns the image coding

func (*ImageRef) ColorSpace

func (r *ImageRef) ColorSpace() Interpretation

ColorSpace returns the interpreptation of the current color space. Alias to Interpretation().

func (*ImageRef) Composite

func (r *ImageRef) Composite(overlay *ImageRef, mode BlendMode, x, y int) error

Composite composites the given overlay image on top of the associated image with provided blending mode.

func (*ImageRef) CompositeMulti added in v1.4.0

func (r *ImageRef) CompositeMulti(ins []*ImageComposite) error

CompositeMulti composites the given overlay image on top of the associated image with provided blending mode.

func (*ImageRef) Copy

func (r *ImageRef) Copy() (*ImageRef, error)

Copy creates a new copy of the given image.

func (*ImageRef) Divide added in v1.4.0

func (r *ImageRef) Divide(denominator *ImageRef) error

Divide calculates the product of the image / denominator and stores it back in the image

func (*ImageRef) DrawRect added in v1.4.0

func (r *ImageRef) DrawRect(ink ColorRGBA, left int, top int, width int, height int, fill bool) error

DrawRect draws an (optionally filled) rectangle with a single colour

func (*ImageRef) Embed

func (r *ImageRef) Embed(left, top, width, height int, extend ExtendStrategy) error

Embed embeds the given picture in a new one, i.e. the opposite of ExtractArea

func (*ImageRef) Export

func (r *ImageRef) Export(params *ExportParams) ([]byte, *ImageMetadata, error)

Export creates a byte array of the image for use. The function returns a byte array that can be written to a file e.g. via ioutil.WriteFile(). N.B. govips does not currently have built-in support for directly exporting to a file. The function also returns a copy of the image metadata as well as an error. Deprecated: Use ExportNative or format-specific Export methods

func (*ImageRef) ExportHeif added in v1.4.0

func (r *ImageRef) ExportHeif(params *HeifExportParams) ([]byte, *ImageMetadata, error)

ExportHeif exports the image as HEIF to a buffer.

func (*ImageRef) ExportJpeg added in v1.4.0

func (r *ImageRef) ExportJpeg(params *JpegExportParams) ([]byte, *ImageMetadata, error)

ExportJpeg exports the image as JPEG to a buffer.

func (*ImageRef) ExportNative added in v1.4.0

func (r *ImageRef) ExportNative() ([]byte, *ImageMetadata, error)

ExportNative exports the image to a buffer based on its native format with default parameters.

func (*ImageRef) ExportPng added in v1.4.0

func (r *ImageRef) ExportPng(params *PngExportParams) ([]byte, *ImageMetadata, error)

ExportPng exports the image as PNG to a buffer.

func (*ImageRef) ExportTiff added in v1.4.0

func (r *ImageRef) ExportTiff(params *TiffExportParams) ([]byte, *ImageMetadata, error)

ExportTiff exports the image as TIFF to a buffer.

func (*ImageRef) ExportWebp added in v1.4.0

func (r *ImageRef) ExportWebp(params *WebpExportParams) ([]byte, *ImageMetadata, error)

ExportWebp exports the image as WEBP to a buffer.

func (*ImageRef) ExtractArea

func (r *ImageRef) ExtractArea(left, top, width, height int) error

ExtractArea crops the image to a specified area

func (*ImageRef) ExtractBand

func (r *ImageRef) ExtractBand(band int, num int) error

ExtractBand extracts one or more bands out of the image (replacing the associated ImageRef)

func (*ImageRef) Flatten

func (r *ImageRef) Flatten(backgroundColor *Color) error

Flatten removes the alpha channel from the image and replaces it with the background color

func (*ImageRef) Flip

func (r *ImageRef) Flip(direction Direction) error

Flip flips the image either horizontally or vertically based on the parameter

func (*ImageRef) Format

func (r *ImageRef) Format() ImageType

Format returns the initial format of the vips image when loaded.

func (*ImageRef) GaussianBlur

func (r *ImageRef) GaussianBlur(sigma float64) error

GaussianBlur blurs the image

func (*ImageRef) GetOrientation

func (r *ImageRef) GetOrientation() int

GetOrientation returns the orientation number as it appears in the EXIF, if present

func (*ImageRef) HasAlpha

func (r *ImageRef) HasAlpha() bool

HasAlpha returns if the image has an alpha layer.

func (*ImageRef) HasICCProfile

func (r *ImageRef) HasICCProfile() bool

HasICCProfile checks whether the image has an ICC profile embedded. Alias to HasProfile

func (*ImageRef) HasIPTC added in v1.2.0

func (r *ImageRef) HasIPTC() bool

HasIPTC returns a boolean whether the image in question has IPTC data associated with it.

func (*ImageRef) HasProfile

func (r *ImageRef) HasProfile() bool

HasProfile returns if the image has an ICC profile embedded.

func (*ImageRef) Height

func (r *ImageRef) Height() int

Height returns the height of this image.

func (*ImageRef) Interpretation

func (r *ImageRef) Interpretation() Interpretation

Interpretation returns the current interpretation of the color space of the image.

func (*ImageRef) Invert

func (r *ImageRef) Invert() error

Invert inverts the image

func (*ImageRef) IsColorSpaceSupported

func (r *ImageRef) IsColorSpaceSupported() bool

IsColorSpaceSupported returns a boolean whether the image's color space is supported by libvips.

func (*ImageRef) Label

func (r *ImageRef) Label(labelParams *LabelParams) error

Label overlays a label on top of the image

func (*ImageRef) Linear

func (r *ImageRef) Linear(a, b []float64) error

Linear passes an image through a linear transformation (ie. output = input * a + b). See https://libvips.github.io/libvips/API/current/libvips-arithmetic.html#vips-linear

func (*ImageRef) Linear1

func (r *ImageRef) Linear1(a, b float64) error

Linear1 runs Linear() with a single constant. See https://libvips.github.io/libvips/API/current/libvips-arithmetic.html#vips-linear1

func (*ImageRef) Mapim added in v1.4.0

func (r *ImageRef) Mapim(index *ImageRef) error

Mapim resamples an image using index to look up pixels

func (*ImageRef) Maplut added in v1.4.0

func (r *ImageRef) Maplut(lut *ImageRef) error

Maplut maps an image through another image acting as a LUT (Look Up Table)

func (*ImageRef) Metadata

func (r *ImageRef) Metadata() *ImageMetadata

Metadata returns the metadata (ImageMetadata struct) of the associated ImageRef

func (*ImageRef) Modulate

func (r *ImageRef) Modulate(brightness, saturation, hue float64) error

Modulate the colors

func (*ImageRef) ModulateHSV

func (r *ImageRef) ModulateHSV(brightness, saturation float64, hue int) error

ModulateHSV modulates the image HSV values based on the supplier parameters.

func (*ImageRef) Multiply added in v1.4.0

func (r *ImageRef) Multiply(multiplier *ImageRef) error

Multiply calculates the product of the image * multiplier and stores it back in the image

func (*ImageRef) OffsetX

func (r *ImageRef) OffsetX() int

OffsetX returns the X offset

func (*ImageRef) OffsetY

func (r *ImageRef) OffsetY() int

OffsetY returns the Y offset

func (*ImageRef) OptimizeICCProfile added in v1.1.0

func (r *ImageRef) OptimizeICCProfile() error

func (*ImageRef) PremultiplyAlpha added in v1.0.7

func (r *ImageRef) PremultiplyAlpha() error

PremultiplyAlpha premultiplies the alpha channel. See https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-premultiply

func (*ImageRef) RemoveICCProfile

func (r *ImageRef) RemoveICCProfile() error

RemoveICCProfile removes the ICC Profile information from the image. Typically browsers and other software assume images without profile to be in the sRGB color space.

func (*ImageRef) RemoveMetadata

func (r *ImageRef) RemoveMetadata() error

RemoveMetadata removes the EXIF metadata from the image. N.B. this function won't remove the ICC profile and orientation because govips needs it to correctly display the image.

func (*ImageRef) RemoveOrientation added in v1.1.0

func (r *ImageRef) RemoveOrientation() error

RemoveOrientation removes the EXIF orientation information of the image.

func (*ImageRef) ResX

func (r *ImageRef) ResX() float64

ResX returns the X resolution

func (*ImageRef) ResY

func (r *ImageRef) ResY() float64

ResY returns the Y resolution

func (*ImageRef) Resize

func (r *ImageRef) Resize(scale float64, kernel Kernel) error

Resize resizes the image based on the scale, maintaining aspect ratio

func (*ImageRef) ResizeWithVScale

func (r *ImageRef) ResizeWithVScale(hScale, vScale float64, kernel Kernel) error

ResizeWithVScale resizes the image with both horizontal as well as vertical scaling. The parameters are the scaling factors.

func (*ImageRef) Rotate

func (r *ImageRef) Rotate(angle Angle) error

Rotate rotates the image by multiples of 90 degrees. To rotate by arbitrary angles use Similarity.

func (*ImageRef) SetOrientation

func (r *ImageRef) SetOrientation(orientation int) error

SetOrientation sets the orientation in the EXIF header of the associated image.

func (*ImageRef) Sharpen

func (r *ImageRef) Sharpen(sigma float64, x1 float64, m2 float64) error

Sharpen sharpens the image sigma: sigma of the gaussian x1: flat/jaggy threshold m2: slope for jaggy areas

func (*ImageRef) Similarity added in v1.4.0

func (r *ImageRef) Similarity(scale float64, angle float64, backgroundColor *ColorRGBA,
	idx float64, idy float64, odx float64, ody float64) error

Similarity lets you scale, offset and rotate images by arbitrary angles in a single operation while defining the color of new background pixels. If the input image has no alpha channel, the alpha on `backgroundColor` will be ignored. You can add an alpha channel to an image with `BandJoinConst` (e.g. `img.BandJoinConst([]float64{255})`) or AddAlpha.

func (*ImageRef) SmartCrop added in v1.4.0

func (r *ImageRef) SmartCrop(width int, height int, interesting Interesting) error

SmartCrop will crop the image based on interestingness factor

func (*ImageRef) Thumbnail added in v1.4.0

func (r *ImageRef) Thumbnail(width, height int, crop Interesting) error

Thumbnail resizes the image to the given width and height. If crop is true the returned image size will be exactly the given height and width, otherwise the width and height will be within the given parameters.

func (*ImageRef) ToBytes

func (r *ImageRef) ToBytes() ([]byte, error)

ToBytes writes the image to memory in VIPs format and returns the raw bytes, useful for storage.

func (*ImageRef) ToColorSpace

func (r *ImageRef) ToColorSpace(interpretation Interpretation) error

ToColorSpace changes the color space of the image to the interpreptation supplied as the parameter.

func (*ImageRef) ToImage added in v1.4.0

func (r *ImageRef) ToImage(params *ExportParams) (image.Image, error)

ToImage converts a VIPs image to a golang image.Image object, useful for interoperability with other golang libraries

func (*ImageRef) UnpremultiplyAlpha added in v1.0.7

func (r *ImageRef) UnpremultiplyAlpha() error

UnpremultiplyAlpha unpremultiplies any alpha channel. See https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-unpremultiply

func (*ImageRef) Width

func (r *ImageRef) Width() int

Width returns the width of this image.

func (*ImageRef) Zoom

func (r *ImageRef) Zoom(xFactor int, yFactor int) error

Zoom zooms the image by repeating pixels (fast nearest-neighbour)

type ImageType

type ImageType int

ImageType represents an image type

const (
	ImageTypeUnknown ImageType = C.UNKNOWN
	ImageTypeGIF     ImageType = C.GIF
	ImageTypeJPEG    ImageType = C.JPEG
	ImageTypeMagick  ImageType = C.MAGICK
	ImageTypePDF     ImageType = C.PDF
	ImageTypePNG     ImageType = C.PNG
	ImageTypeSVG     ImageType = C.SVG
	ImageTypeTIFF    ImageType = C.TIFF
	ImageTypeWEBP    ImageType = C.WEBP
	ImageTypeHEIF    ImageType = C.HEIF
	ImageTypeBMP     ImageType = C.BMP
)

ImageType enum

func DetermineImageType

func DetermineImageType(buf []byte) ImageType

DetermineImageType attempts to determine the image type of the given buffer

func (ImageType) FileExt

func (i ImageType) FileExt() string

FileExt returns the canonical extension for the ImageType

type Intent added in v1.3.9

type Intent int

Intent represents VIPS_INTENT type

const (
	IntentPerceptual Intent = C.VIPS_INTENT_PERCEPTUAL
	IntentRelative   Intent = C.VIPS_INTENT_RELATIVE
	IntentSaturation Intent = C.VIPS_INTENT_SATURATION
	IntentAbsolute   Intent = C.VIPS_INTENT_ABSOLUTE
	IntentLast       Intent = C.VIPS_INTENT_LAST
)

Intent enum

type Interesting added in v1.4.0

type Interesting int

Interesting represents VIPS_INTERESTING type https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsInteresting

const (
	InterestingNone      Interesting = C.VIPS_INTERESTING_NONE
	InterestingCentre    Interesting = C.VIPS_INTERESTING_CENTRE
	InterestingEntropy   Interesting = C.VIPS_INTERESTING_ENTROPY
	InterestingAttention Interesting = C.VIPS_INTERESTING_ATTENTION
	InterestingLow       Interesting = C.VIPS_INTERESTING_LOW
	InterestingHigh      Interesting = C.VIPS_INTERESTING_HIGH
	InterestingAll       Interesting = C.VIPS_INTERESTING_ALL
	InterestingLast      Interesting = C.VIPS_INTERESTING_LAST
)

Interesting constants represent areas of interest which smart cropping will crop based on.

type Interpretation

type Interpretation int

Interpretation represents VIPS_INTERPRETATION type

type JpegExportParams added in v1.4.0

type JpegExportParams struct {
	StripMetadata  bool
	Quality        int
	Interlace      bool
	OptimizeCoding bool
	Subsampling    JpegSubsampling
}

JpegExportParams are options when exporting a JPEG to file or buffer

func NewJpegExportParams added in v1.4.0

func NewJpegExportParams() *JpegExportParams

NewJpegExportParams creates default values for an export of a JPEG image. By default, govips creates interlaced JPEGs with a quality of 80/100.

type JpegSubsampling added in v1.4.0

type JpegSubsampling int
const (
	JpegSubsamplingAuto JpegSubsampling = 0
	JpegSubsamplingOn   JpegSubsampling = 1
	JpegSubsamplingOff  JpegSubsampling = 2
	JpegSubsamplingLast JpegSubsampling = 3
)

type Kernel

type Kernel int

Kernel represents VipsKernel type

const (
	KernelAuto     Kernel = -1
	KernelNearest  Kernel = C.VIPS_KERNEL_NEAREST
	KernelLinear   Kernel = C.VIPS_KERNEL_LINEAR
	KernelCubic    Kernel = C.VIPS_KERNEL_CUBIC
	KernelLanczos2 Kernel = C.VIPS_KERNEL_LANCZOS2
	KernelLanczos3 Kernel = C.VIPS_KERNEL_LANCZOS3
	KernelMitchell Kernel = C.VIPS_KERNEL_MITCHELL
)

Kernel enum

type LabelParams

type LabelParams struct {
	Text      string
	Font      string
	Width     Scalar
	Height    Scalar
	OffsetX   Scalar
	OffsetY   Scalar
	Opacity   float32
	Color     Color
	Alignment Align
}

LabelParams represents a text-based label

type LogLevel added in v1.4.0

type LogLevel int

LogLevel is the enum controlling logging message verbosity.

const (
	LogLevelError    LogLevel = C.G_LOG_LEVEL_ERROR
	LogLevelCritical LogLevel = C.G_LOG_LEVEL_CRITICAL
	LogLevelWarning  LogLevel = C.G_LOG_LEVEL_WARNING
	LogLevelMessage  LogLevel = C.G_LOG_LEVEL_MESSAGE
	LogLevelInfo     LogLevel = C.G_LOG_LEVEL_INFO
	LogLevelDebug    LogLevel = C.G_LOG_LEVEL_DEBUG
)

The logging verbosity levels classify and filter logging messages. From most to least verbose, they are debug, info, message, warning, critical and error.

type LoggingHandlerFunction added in v1.4.0

type LoggingHandlerFunction func(messageDomain string, messageLevel LogLevel, message string)

LoggingHandlerFunction is a function which will be called for each log message. By default, govips sends logging messages to os.Stderr. If you want to log elsewhere such as to a file or to a state variable which you inspect yourself, define a new logging handler function and set it via LoggingSettings().

type MemoryStats

type MemoryStats struct {
	Mem     int64
	MemHigh int64
	Files   int64
	Allocs  int64
}

MemoryStats is a data structure that houses various memory statistics from ReadVipsMemStats()

type PngExportParams added in v1.4.0

type PngExportParams struct {
	StripMetadata bool
	Compression   int
	Interlace     bool
}

PngExportParams are options when exporting a PNG to file or buffer

func NewPngExportParams added in v1.4.0

func NewPngExportParams() *PngExportParams

NewPngExportParams creates default values for an export of a PNG image. By default, govips creates non-interlaced PNGs with a compression of 6/10.

type PreMultiplicationState added in v1.0.10

type PreMultiplicationState struct {
	// contains filtered or unexported fields
}

PreMultiplicationState stores the premultiplication band format of the image

type RuntimeStats

type RuntimeStats struct {
	OperationCounts map[string]int64
}

RuntimeStats is a data structure to house a map of govips operation counts

type Scalar

type Scalar struct {
	Value    float64
	Relative bool
}

Scalar is the basic scalar measurement of an image's height, width or offset coordinate.

func ValueOf

func ValueOf(value float64) Scalar

ValueOf takes a floating point value and returns a corresponding Scalar struct

func (*Scalar) Get

func (s *Scalar) Get(base int) float64

Get returns the value of the scalar. Either absolute, or if relative, multiplied by the base given as parameter.

func (*Scalar) GetRounded

func (s *Scalar) GetRounded(base int) int

GetRounded returns the value of the associated Scalar, rounded to the nearest integer, if absolute. If the Scalar is relative, it will be multiplied by the supplied base parameter.

func (*Scalar) IsZero

func (s *Scalar) IsZero() bool

IsZero checkes whether the associated Scalar's value is zero.

func (*Scalar) Set

func (s *Scalar) Set(value float64)

Set sets a float value for the associated Scalar.

func (*Scalar) SetInt

func (s *Scalar) SetInt(value int)

SetInt sets an integer value for the associated Scalar.

func (*Scalar) SetScale

func (s *Scalar) SetScale(f float64)

SetScale sets a float value for the associated Scalar and makes it relative.

type TiffCompression added in v1.4.0

type TiffCompression int

TiffCompression represents method for compressing a tiff at export

type TiffExportParams added in v1.4.0

type TiffExportParams struct {
	StripMetadata bool
	Quality       int
	Compression   TiffCompression
	Predictor     TiffPredictor
}

TiffExportParams are options when exporting a TIFF to file or buffer

func NewTiffExportParams added in v1.4.0

func NewTiffExportParams() *TiffExportParams

NewTiffExportParams creates default values for an export of a TIFF image.

type TiffPredictor added in v1.4.0

type TiffPredictor int

TiffPredictor represents method for compressing a tiff at export

TiffPredictor enum

type WebpExportParams added in v1.4.0

type WebpExportParams struct {
	StripMetadata   bool
	Quality         int
	Lossless        bool
	NearLossless    bool
	ReductionEffort int
	IccProfile      string
}

WebpExportParams are options when exporting a WEBP to file or buffer

func NewWebpExportParams added in v1.4.0

func NewWebpExportParams() *WebpExportParams

NewWebpExportParams creates default values for an export of a WEBP image. By default, govips creates lossy images with a quality of 75/100.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL