images

package
v0.58.1 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2019 License: Apache-2.0 Imports: 21 Imported by: 5

Documentation

Overview

Package images provides template functions for manipulating images.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToFilters

func ToFilters(in interface{}) []gift.Filter

Types

type ExifConfig

type ExifConfig struct {

	// Regexp matching the Exif fields you want from the (massive) set of Exif info
	// available. As we cache this info to disk, this is for performance and
	// disk space reasons more than anything.
	// If you want it all, put ".*" in this config setting.
	// Note that if neither this or ExcludeFields is set, Hugo will return a small
	// default set.
	IncludeFields string

	// Regexp matching the Exif fields you want to exclude. This may be easier to use
	// than IncludeFields above, depending on what you want.
	ExcludeFields string

	// Hugo extracts the "photo taken" date/time into .Date by default.
	// Set this to true to turn it off.
	DisableDate bool

	// Hugo extracts the "photo taken where" (GPS latitude and longitude) into
	// .Long and .Lat. Set this to true to turn it off.
	DisableLatLong bool
}

type Filters

type Filters struct {
}

func (*Filters) Brightness

func (*Filters) Brightness(percentage interface{}) gift.Filter

Brightness creates a filter that changes the brightness of an image. The percentage parameter must be in range (-100, 100).

func (*Filters) ColorBalance

func (*Filters) ColorBalance(percentageRed, percentageGreen, percentageBlue interface{}) gift.Filter

ColorBalance creates a filter that changes the color balance of an image. The percentage parameters for each color channel (red, green, blue) must be in range (-100, 500).

func (*Filters) Colorize

func (*Filters) Colorize(hue, saturation, percentage interface{}) gift.Filter

Colorize creates a filter that produces a colorized version of an image. The hue parameter is the angle on the color wheel, typically in range (0, 360). The saturation parameter must be in range (0, 100). The percentage parameter specifies the strength of the effect, it must be in range (0, 100).

func (*Filters) Contrast

func (*Filters) Contrast(percentage interface{}) gift.Filter

Contrast creates a filter that changes the contrast of an image. The percentage parameter must be in range (-100, 100).

func (*Filters) Gamma

func (*Filters) Gamma(gamma interface{}) gift.Filter

Gamma creates a filter that performs a gamma correction on an image. The gamma parameter must be positive. Gamma = 1 gives the original image. Gamma less than 1 darkens the image and gamma greater than 1 lightens it.

func (*Filters) GaussianBlur

func (*Filters) GaussianBlur(sigma interface{}) gift.Filter

GaussianBlur creates a filter that applies a gaussian blur to an image.

func (*Filters) Grayscale

func (*Filters) Grayscale() gift.Filter

Grayscale creates a filter that produces a grayscale version of an image.

func (*Filters) Hue

func (*Filters) Hue(shift interface{}) gift.Filter

Hue creates a filter that rotates the hue of an image. The hue angle shift is typically in range -180 to 180.

func (*Filters) Invert

func (*Filters) Invert() gift.Filter

Invert creates a filter that negates the colors of an image.

func (*Filters) Pixelate

func (*Filters) Pixelate(size interface{}) gift.Filter

Pixelate creates a filter that applies a pixelation effect to an image.

func (*Filters) Saturation

func (*Filters) Saturation(percentage interface{}) gift.Filter

Saturation creates a filter that changes the saturation of an image.

func (*Filters) Sepia

func (*Filters) Sepia(percentage interface{}) gift.Filter

Sepia creates a filter that produces a sepia-toned version of an image.

func (*Filters) Sigmoid

func (*Filters) Sigmoid(midpoint, factor interface{}) gift.Filter

Sigmoid creates a filter that changes the contrast of an image using a sigmoidal function and returns the adjusted image. It's a non-linear contrast change useful for photo adjustments as it preserves highlight and shadow detail.

func (*Filters) UnsharpMask

func (*Filters) UnsharpMask(sigma, amount, threshold interface{}) gift.Filter

UnsharpMask creates a filter that sharpens an image. The sigma parameter is used in a gaussian function and affects the radius of effect. Sigma must be positive. Sharpen radius roughly equals 3 * sigma. The amount parameter controls how much darker and how much lighter the edge borders become. Typically between 0.5 and 1.5. The threshold parameter controls the minimum brightness change that will be sharpened. Typically between 0 and 0.05.

type Format

type Format int

Format is an image file format.

const (
	JPEG Format = iota + 1
	PNG
	GIF
	TIFF
	BMP
)

func ImageFormatFromExt

func ImageFormatFromExt(ext string) (Format, bool)

type Image

type Image struct {
	Format Format

	Proc *ImageProcessor

	Spec Spec
	// contains filtered or unexported fields
}

func NewImage

func NewImage(f Format, proc *ImageProcessor, img image.Image, s Spec) *Image

func (*Image) EncodeTo

func (i *Image) EncodeTo(conf ImageConfig, img image.Image, w io.Writer) error

func (*Image) Height

func (i *Image) Height() int

Height returns i's height.

func (*Image) Width

func (i *Image) Width() int

Width returns i's width.

func (Image) WithImage

func (i Image) WithImage(img image.Image) *Image

func (Image) WithSpec

func (i Image) WithSpec(s Spec) *Image

type ImageConfig

type ImageConfig struct {
	Action string

	// If set, this will be used as the key in filenames etc.
	Key string

	// Quality ranges from 1 to 100 inclusive, higher is better.
	// This is only relevant for JPEG images.
	// Default is 75.
	Quality int

	// Rotate rotates an image by the given angle counter-clockwise.
	// The rotation will be performed first.
	Rotate int

	Width  int
	Height int

	Filter    gift.Resampling
	FilterStr string

	Anchor    gift.Anchor
	AnchorStr string
}

ImageConfig holds configuration to create a new image from an existing one, resize etc.

func DecodeImageConfig

func DecodeImageConfig(action, config string, defaults Imaging) (ImageConfig, error)

func (ImageConfig) GetKey

func (i ImageConfig) GetKey(format Format) string

type ImageProcessor

type ImageProcessor struct {
	Cfg Imaging
	// contains filtered or unexported fields
}

func NewImageProcessor

func NewImageProcessor(cfg Imaging) (*ImageProcessor, error)

func (*ImageProcessor) ApplyFiltersFromConfig

func (p *ImageProcessor) ApplyFiltersFromConfig(src image.Image, conf ImageConfig) (image.Image, error)

func (*ImageProcessor) DecodeExif

func (p *ImageProcessor) DecodeExif(r io.Reader) (*exif.Exif, error)

func (*ImageProcessor) Filter

func (p *ImageProcessor) Filter(src image.Image, filters ...gift.Filter) (image.Image, error)

func (*ImageProcessor) GetDefaultImageConfig

func (p *ImageProcessor) GetDefaultImageConfig(action string) ImageConfig

type Imaging

type Imaging struct {
	// Default image quality setting (1-100). Only used for JPEG images.
	Quality int

	// Resample filter to use in resize operations..
	ResampleFilter string

	// The anchor to use in Fill. Default is "smart", i.e. Smart Crop.
	Anchor string

	Exif ExifConfig
}

Imaging contains default image processing configuration. This will be fetched from site (or language) config.

func DecodeConfig

func DecodeConfig(m map[string]interface{}) (Imaging, error)

type Spec

type Spec interface {
	// Loads the image source.
	ReadSeekCloser() (hugio.ReadSeekCloser, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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