Documentation
¶
Overview ¶
Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
This package is based on the standard Go image package. All the image manipulation functions provided by the package take any image type that implements image.Image interface, and return a new image of *image.NRGBA type (32 bit RGBA colors, not premultiplied by alpha).
Index ¶
- func Clone(img image.Image) *image.NRGBA
- func Crop(img image.Image, rect image.Rectangle) *image.NRGBA
- func CropCenter(img image.Image, width, height int) *image.NRGBA
- func Fit(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA
- func FlipH(img image.Image) *image.NRGBA
- func FlipV(img image.Image) *image.NRGBA
- func New(width, height int, fillColor color.Color) *image.NRGBA
- func Open(filename string) (img image.Image, err error)
- func Overlay(background, source image.Image, pos image.Point, opacity float64) *image.NRGBA
- func Paste(img, src image.Image, pos image.Point) *image.NRGBA
- func PasteCenter(img, src image.Image) *image.NRGBA
- func Resize(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA
- func Rotate180(img image.Image) *image.NRGBA
- func Rotate270(img image.Image) *image.NRGBA
- func Rotate90(img image.Image) *image.NRGBA
- func Save(img image.Image, filename string) (err error)
- func Thumbnail(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA
- type ResampleFilter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Crop ¶
Crop cuts out a rectangular region with the specified bounds from the image and returns the cropped image.
func CropCenter ¶
Crop cuts out a rectangular region with the specified size from the center of the image and returns the cropped image.
func Fit ¶
Fit scales down the image using the specified resample filter to fit the specified maximum width and height and returns the transformed image.
Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine.
Usage example:
dstImage := imaging.Fit(srcImage, 800, 600, imaging.Lanczos)
func FlipH ¶
FlipH flips the image horizontally (from left to right) and returns the transformed image.
func FlipV ¶
FlipV flips the image vertically (from top to bottom) and returns the transformed image.
func New ¶
New creates a new image with the specified width and height, and fills it with the specified color.
func Overlay ¶
Overlay draws the source image over the background image at given position and returns the combined image. Opacity parameter is the opacity of the source image layer, used to compose the images, it must be from 0.0 to 1.0.
Usage examples:
// draw the sprite over the background at position (50, 50) dstImage := imaging.Overlay(backgroundImage, spriteImage, image.Pt(50, 50), 1.0) // blend two opaque images of the same size dstImage := imaging.Overlay(imageOne, imageTwo, image.Pt(0, 0), 0.5)
func Paste ¶
Paste pastes the src image to the img image at the specified position and returns the combined image.
func PasteCenter ¶
Paste pastes the src image to the center of the img image and returns the combined image.
func Resize ¶
Resize resizes the image to the specified width and height using the specified resampling filter and returns the transformed image. If one of width or height is 0, the image aspect ratio is preserved.
Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine.
Usage example:
dstImage := imaging.Resize(srcImage, 800, 600, imaging.Lanczos)
func Rotate180 ¶
Rotate180 rotates the image 180 degrees clockwise and returns the transformed image.
func Rotate270 ¶
Rotate270 rotates the image 270 degrees clockwise and returns the transformed image.
func Save ¶
Save saves the image to file with the specified filename. The format is determined from the filename extension, "jpg" (or "jpeg") and "png" are supported.
func Thumbnail ¶
Thumbnail scales the image up or down using the specified resample filter, crops it to the specified width and hight and returns the transformed image.
Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine.
Usage example:
dstImage := imaging.Fit(srcImage, 100, 100, imaging.Lanczos)
Types ¶
type ResampleFilter ¶
Resample filter struct. It can be used to make custom filters.
Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine.
General filter recommendations: - Lanczos Probably the best resampling filter for photographic images yielding sharp results, but it's slower than cubic filters (see below). - CatmullRom A sharp cubic filter. It's a good filter for both upscaling and downscaling if sharp results are needed. - MitchellNetravali A high quality cubic filter that produces smoother results with less ringing than CatmullRom. - BSpline A good filter if a very smooth output is needed. - Linear Bilinear interpolation filter, produces reasonably good, smooth output. It's faster than cubic filters. - Box Simple and fast resampling filter appropriate for downscaling. When upscaling it's similar to NearestNeighbor. - NearestNeighbor Fastest resample filter, no antialiasing at all. Rarely used.
var BSpline ResampleFilter
Cubic B-spline - smooth cubic filter (BC-spline; B=1; C=0).
var Bartlett ResampleFilter
Bartlett-windowed sinc filter (3 lobes).
var Blackman ResampleFilter
Blackman-windowed sinc filter (3 lobes).
var Box ResampleFilter
Box filter (averaging pixels).
var CatmullRom ResampleFilter
Catmull-Rom - sharp cubic filter (BC-spline; B=0; C=0.5).
var Cosine ResampleFilter
Cosine-windowed sinc filter (3 lobes).
var Gaussian ResampleFilter
Gaussian Blurring Filter.
var Hamming ResampleFilter
Hamming-windowed sinc filter (3 lobes).
var Hann ResampleFilter
Hann-windowed sinc filter (3 lobes).
var Hermite ResampleFilter
Hermite cubic spline filter (BC-spline; B=0; C=0).
var Lanczos ResampleFilter
Lanczos filter (3 lobes).
var Linear ResampleFilter
Linear filter.
var MitchellNetravali ResampleFilter
Mitchell-Netravali cubic filter (BC-spline; B=1/3; C=1/3).
var NearestNeighbor ResampleFilter
Nearest-neighbor filter, no anti-aliasing.
var Welch ResampleFilter
Welch-windowed sinc filter (parabolic window, 3 lobes).