cutter

package
v0.0.0-...-7d73049 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2022 License: GPL-2.0 Imports: 2 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func Crop

func Crop(img image.Image, c Config) (image.Image, error)

Crop retrieves an image that is a cropped copy of the original img.

The crop is made given the informations provided in config.

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
	// 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
)

Jump to

Keyboard shortcuts

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