Package gift provides a set of useful image processing filters.
Pure Go. No external dependencies outside of the Go standard library.
BETA
go get -u github.com/disintegration/gift
http://godoc.org/github.com/disintegration/gift
// 1. Create a new GIFT and add some filters:
g := gift.New(
gift.Resize(800, 0, gift.LanczosResampling),
gift.UnsharpMask(1.0, 1.0, 0.0),
)
// 2. Create a new image of the corresponding size.
// dst is a new target image, src is the original image
dst := image.NewRGBA(g.Bounds(src.Bounds()))
// 3. Use Draw func to apply the filters to src and store the result in dst:
g.Draw(dst, src)-
Transformations
- Crop(rect image.Rectangle)
- FlipHorizontal()
- FlipVertical()
- Resize(width, height int, resampling Resampling)
- Rotate180()
- Rotate270()
- Rotate90()
- Transpose()
- Transverse()
-
Adjustments & effects
- Brightness(percentage float32)
- ColorspaceLinearToSRGB()
- ColorspaceSRGBToLinear()
- Contrast(percentage float32)
- Convolution(kernel []float32, normalize, alpha, abs bool, delta float32)
- Gamma(gamma float32)
- GaussianBlur(sigma float32)
- Grayscale()
- Hue(shift float32)
- Invert()
- Maximum(ksize int, disk bool)
- Mean(ksize int, disk bool)
- Median(ksize int, disk bool)
- Minimum(ksize int, disk bool)
- Saturation(percentage float32)
- Sepia()
- Sigmoid(midpoint, factor float32)
- UnsharpMask(sigma, amount, thresold float32)
gift.Resize(200, 0, gift.LanczosResampling)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Resize(200, 0, gift.LinearResampling)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Crop(image.Rect(90, 90, 250, 250))| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Rotate90()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Rotate180()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Rotate270()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.FlipHorizontal()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.FlipVertical()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Transpose()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Transverse()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Contrast(30)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Contrast(-30)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Brightness(30)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Brightness(-30)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Saturation(50)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Saturation(-50)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Hue(45)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Hue(-45)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Sigmoid(0.5, 5.0)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Gamma(0.5)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Gamma(1.5)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.GaussianBlur(1.0)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.UnsharpMask(1.0, 1.5, 0.0)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Grayscale()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Sepia()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Invert()| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Mean(5, true)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Median(5, true)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Minimum(5, true)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Maximum(5, true)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Convolution(
[]float32{
-1, -1, 0,
-1, 1, 1,
0, 1, 1,
},
false, false, false, 0.0,
)| Original image | Filtered image |
|---|---|
![]() |
![]() |
gift.Convolution(
[]float32{
-1, -1, -1,
-1, 8, -1,
-1, -1, -1,
},
false, false, false, 0.0,
)| Original image | Filtered image |
|---|---|
![]() |
![]() |
































