mirror of https://github.com/talgo-cloud/bimg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
2.9 KiB
143 lines
2.9 KiB
package bimg
|
|
|
|
/*
|
|
#cgo pkg-config: vips
|
|
#include "vips/vips.h"
|
|
*/
|
|
import "C"
|
|
|
|
const (
|
|
QUALITY = 80
|
|
MAX_SIZE = 16383
|
|
)
|
|
|
|
type Gravity int
|
|
|
|
const (
|
|
CENTRE Gravity = iota
|
|
NORTH
|
|
EAST
|
|
SOUTH
|
|
WEST
|
|
)
|
|
|
|
type Interpolator int
|
|
|
|
const (
|
|
BICUBIC Interpolator = iota
|
|
BILINEAR
|
|
NOHALO
|
|
)
|
|
|
|
var interpolations = map[Interpolator]string{
|
|
BICUBIC: "bicubic",
|
|
BILINEAR: "bilinear",
|
|
NOHALO: "nohalo",
|
|
}
|
|
|
|
func (i Interpolator) String() string {
|
|
return interpolations[i]
|
|
}
|
|
|
|
type Angle int
|
|
|
|
const (
|
|
D0 Angle = 0
|
|
D90 Angle = 90
|
|
D180 Angle = 180
|
|
D270 Angle = 270
|
|
)
|
|
|
|
type Direction int
|
|
|
|
const (
|
|
HORIZONTAL Direction = C.VIPS_DIRECTION_HORIZONTAL
|
|
VERTICAL Direction = C.VIPS_DIRECTION_VERTICAL
|
|
)
|
|
|
|
// Image interpretation type
|
|
// See: http://www.vips.ecs.soton.ac.uk/supported/current/doc/html/libvips/VipsImage.html#VipsInterpretation
|
|
type Interpretation int
|
|
|
|
const (
|
|
INTERPRETATION_ERROR Interpretation = C.VIPS_INTERPRETATION_ERROR
|
|
INTERPRETATION_MULTIBAND Interpretation = C.VIPS_INTERPRETATION_MULTIBAND
|
|
INTERPRETATION_B_W Interpretation = C.VIPS_INTERPRETATION_B_W
|
|
INTERPRETATION_CMYK Interpretation = C.VIPS_INTERPRETATION_CMYK
|
|
INTERPRETATION_RGB Interpretation = C.VIPS_INTERPRETATION_RGB
|
|
INTERPRETATION_sRGB Interpretation = C.VIPS_INTERPRETATION_sRGB
|
|
INTERPRETATION_RGB16 Interpretation = C.VIPS_INTERPRETATION_RGB16
|
|
INTERPRETATION_GREY16 Interpretation = C.VIPS_INTERPRETATION_GREY16
|
|
INTERPRETATION_scRGB Interpretation = C.VIPS_INTERPRETATION_scRGB
|
|
INTERPRETATION_LAB Interpretation = C.VIPS_INTERPRETATION_LAB
|
|
INTERPRETATION_XYZ Interpretation = C.VIPS_INTERPRETATION_XYZ
|
|
)
|
|
|
|
const WATERMARK_FONT = "sans 10"
|
|
|
|
// Color represents a traditional RGB color scheme
|
|
type Color struct {
|
|
R, G, B uint8
|
|
}
|
|
|
|
// Shortcut to black RGB color representation
|
|
var ColorBlack = Color{0, 0, 0}
|
|
|
|
// Text-based watermark configuration
|
|
type Watermark struct {
|
|
Width int
|
|
DPI int
|
|
Margin int
|
|
Opacity float32
|
|
NoReplicate bool
|
|
Text string
|
|
Font string
|
|
Background Color
|
|
}
|
|
|
|
type GaussianBlur struct {
|
|
Sigma float64
|
|
MinAmpl float64
|
|
}
|
|
|
|
type Sharpen struct {
|
|
Radius int
|
|
X1 float64
|
|
Y2 float64
|
|
Y3 float64
|
|
M1 float64
|
|
M2 float64
|
|
}
|
|
|
|
// Supported image transformation options
|
|
type Options struct {
|
|
Height int
|
|
Width int
|
|
AreaHeight int
|
|
AreaWidth int
|
|
Top int
|
|
Left int
|
|
Extend int
|
|
Quality int
|
|
Compression int
|
|
Zoom int
|
|
Crop bool
|
|
Enlarge bool
|
|
Embed bool
|
|
Flip bool
|
|
Flop bool
|
|
Force bool
|
|
NoAutoRotate bool
|
|
NoProfile bool
|
|
Interlace bool
|
|
Rotate Angle
|
|
Background Color
|
|
Gravity Gravity
|
|
Watermark Watermark
|
|
Type ImageType
|
|
Interpolator Interpolator
|
|
Interpretation Interpretation
|
|
GaussianBlur GaussianBlur
|
|
Sharpen Sharpen
|
|
}
|