Documentation ¶
Overview ¶
Package cutter provides a function to crop image.
By default, the original image will be cropped at the given size from the top left corner.
croppedImg, err := cutter.Crop(img, cutter.Config{ Width: 250, Height: 500, })
Most of the time, the cropped image will share some memory with the original, so it should be used read only. You must ask explicitely for a copy if nedded.
croppedImg, err := cutter.Crop(img, cutter.Config{ Width: 250, Height: 500, Options: Copy, })
It is possible to specify the top left position:
croppedImg, err := cutter.Crop(img, cutter.Config{ Width: 250, Height: 500, Anchor: image.Point{100, 100}, Mode: TopLeft, // optional, default value })
The Anchor property can represents the center of the cropped image instead of the top left corner:
croppedImg, err := cutter.Crop(img, cutter.Config{ Width: 250, Height: 500, Mode: Centered, })
The default crop use the specified dimension, but it is possible to use Width and Heigth as a ratio instead. In this case, the resulting image will be as big as possible to fit the asked ratio from the anchor position.
croppedImg, err := cutter.Crop(baseImage, cutter.Config{ Width: 4, Height: 3, Mode: Centered, Options: Ratio, })
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Crop ¶
Crop retrieves an image that is a cropped copy of the original img.
The crop is made given the informations provided in config.
Example ¶
f, err := os.Open("fixtures/gopher.jpg") if err != nil { log.Fatal("Cannot open file", err) } img, _, err := image.Decode(f) if err != nil { log.Fatal("Cannot decode image:", err) } cImg, err := Crop(img, Config{ Height: 500, // height in pixel or Y ratio(see Ratio Option below) Width: 500, // width in pixel or X ratio Mode: TopLeft, // Accepted Mode: TopLeft, Centered Anchor: image.Point{10, 10}, // Position of the top left point Options: 0, // Accepted Option: Ratio }) if err != nil { log.Fatal("Cannot crop image:", err) } fmt.Println("cImg dimension:", cImg.Bounds())
Output: cImg dimension: (10,10)-(510,510)
Types ¶
type AnchorMode ¶
type AnchorMode int
AnchorMode is an enumeration of the position an anchor can represent.
const ( // TopLeft defines the Anchor Point // as the top left of the cropped picture. TopLeft AnchorMode = iota TopRight AnchorMode = iota BottomLeft AnchorMode = iota BottomRight AnchorMode = iota // Centered defines the Anchor Point // as the center of the cropped picture. Centered = iota )
type Config ¶
type Config struct {
Width, Height int
Anchor image.Point // The Anchor Point in the source image
Mode AnchorMode // Which point in the resulting image the Anchor Point is referring to
Options Option
}
Config is used to defined the way the crop should be realized.
type Option ¶
type Option int
Option flags to modify the way the crop is done.
const ( // Ratio flag is use when Width and Height // must be used to compute a ratio rather // than absolute size in pixels. Ratio Option = 1 << iota // Copy flag is used to enforce the function // to retrieve a copy of the selected pixels. // This disable the use of SubImage method // to compute the result. Copy = 1 << iota )