resize: github.com/nfnt/resize Index | Files

package resize

import "github.com/nfnt/resize"

Package resize implements various image resizing methods.

The package works with the Image interface described in the image package. Various interpolation methods are provided and multiple processors may be utilized in the computations.

Example:

imgResized := resize.Resize(1000, 0, imgOld, resize.MitchellNetravali)

Index

Package Files

converter.go filters.go nearest.go resize.go thumbnail.go ycc.go

func Resize Uses

func Resize(width, height uint, img image.Image, interp InterpolationFunction) image.Image

Resize scales an image to new width and height using the interpolation function interp. A new image with the given dimensions will be returned. If one of the parameters width or height is set to 0, its size will be calculated so that the aspect ratio is that of the originating image. The resizing algorithm uses channels for parallel computation.

func Thumbnail Uses

func Thumbnail(maxWidth, maxHeight uint, img image.Image, interp InterpolationFunction) image.Image

Thumbnail will downscale provided image to max width and height preserving original aspect ratio and using the interpolation function interp. It will return original image, without processing it, if original sizes are already smaller than provided constraints.

type InterpolationFunction Uses

type InterpolationFunction int

An InterpolationFunction provides the parameters that describe an interpolation kernel. It returns the number of samples to take and the kernel function to use for sampling.

const (
    // Nearest-neighbor interpolation
    NearestNeighbor InterpolationFunction = iota
    // Bilinear interpolation
    Bilinear
    // Bicubic interpolation (with cubic hermite spline)
    Bicubic
    // Mitchell-Netravali interpolation
    MitchellNetravali
    // Lanczos interpolation (a=2)
    Lanczos2
    // Lanczos interpolation (a=3)
    Lanczos3
)

InterpolationFunction constants

Package resize imports 5 packages (graph) and is imported by 436 packages. Updated 2017-01-20. Refresh now. Tools for package owners.