img

package
v0.0.10 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func TransformFile

func TransformFile(source string, destinations map[string]Options) error

TransformFile creates versions of source based on destinations

Example
sourceImg := "../assets/leica.jpg"
homeDir, _ := os.UserHomeDir()
sourceDir := path.Join(homeDir, "transform")
_ = os.Mkdir(sourceDir, 0755)

//for all but the thumb we are copying the original meta information
thumb := NewOptions(ResizeAndCrop, 400, 400, false)
landscape := NewOptions(ResizeAndCrop, 1200, 628, true)
square := NewOptions(ResizeAndCrop, 1200, 1200, true)
portrait := NewOptions(ResizeAndCrop, 1080, 1350, true)
resize := NewOptions(Resize, 1200, 0, true)

destImgs := map[string]Options{
	path.Join(sourceDir, "thumb.jpg"):     thumb,
	path.Join(sourceDir, "landscape.jpg"): landscape,
	path.Join(sourceDir, "square.jpg"):    square,
	path.Join(sourceDir, "portrait.jpg"):  portrait,
	path.Join(sourceDir, "resize.jpg"):    resize,
}

_ = TransformFile(sourceImg, destImgs)
fmt.Println("Transformed leica.jpg")
Output:

Transformed leica.jpg

Types

type CropAnchor

type CropAnchor int

CropAnchor specifies where the anchor point should be when cropping an image

const (
	Center CropAnchor = iota
	TopLeft
	Top
	TopRight
	Left
	Right
	BottomLeft
	Bottom
	BottomRight
)

Various Anchors for your crop

type Options

type Options struct {
	Width     int
	Height    int
	Quality   int
	Anchor    CropAnchor
	Transform TransformType
	Strategy  ResampleStrategy
	CopyExif  bool
}

Options holds all options for a given image transformation job

func NewOptions

func NewOptions(transform TransformType, width, height int, copyExif bool) Options

NewOptions creates Options that default to crop center strategy, image quality 90% and Resize strategy lanczos

type ResampleStrategy

type ResampleStrategy int

ResampleStrategy specifies what method to use when resampling an image

const (
	//Lanczos sampling. Default
	Lanczos ResampleStrategy = iota
	//NearestNeighbor sampling
	NearestNeighbor
	//Box sampling
	Box
	//Linear sampling
	Linear
	//Hermite sampling
	Hermite
	//MitchellNetravali sampling
	MitchellNetravali
	//CatmullRom sampling
	CatmullRom
	//BSpline sampling
	BSpline
	//Gaussian sampling
	Gaussian
	//Bartlett sampling
	Bartlett
	//Hann sampling
	Hann
	//Hamming sampling
	Hamming
	//Blackman sampling
	Blackman
	//Welch sampling
	Welch
	//Cosine sampling
	Cosine
)

type TransformType

type TransformType int

TransformType specifies how to transform an image, crop, resize, etc...

const (
	//ResizeAndCrop scales the image to given dimension. To keep aspect ratio the image is cropped
	ResizeAndCrop TransformType = iota
	//Crop cuts a specified region of the image
	Crop
	//Resize scale the image to the specified dimensions. To keep aspect ratio set either width or height to 0
	Resize
	//ResizeAndFit scale the image to fit the maximum specified dimensions.
	ResizeAndFit
)

Jump to

Keyboard shortcuts

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