Gift 包提供一整套有用的圖像處理過濾器。
完全使用 Go 語言,沒有 Go 標(biāo)準(zhǔn)庫之外的外部依賴。
安裝/更新
go get -u github.com/disintegration/gift
文檔
http://godoc.org/github.com/disintegration/gift
快速開始
// 1. 創(chuàng)建一個(gè)新的 GIFT 過濾器列表以及添加一些過濾器 g := gift.New( gift.Resize(800, 0, gift.LanczosResampling), gift.UnsharpMask(1.0, 1.0, 0.0), ) // 2. 創(chuàng)建一個(gè)相應(yīng)大小的新圖像 // dst 是一個(gè)新的目標(biāo)圖像,src 是原始圖像 dst := image.NewRGBA(g.Bounds(src.Bounds())) // 3. 使用 Draw 函數(shù)將過濾器應(yīng)用到 src 并將結(jié)果存儲(chǔ)到 dst g.Draw(dst, src)
用法
New 函數(shù)用于創(chuàng)建過濾器的序列:
g := gift.New( gift.Grayscale(), gift.Contrast(10), )
過濾器也可以使用 Add 方法被添加:
g.Add(GaussianBlur(2))
Bounds 方法獲取原始圖像的界限并為目的圖像返回相應(yīng)的界限以適應(yīng)結(jié)果(例如使用 Resize 或 Rotate 過濾器后)
dst := image.NewRGBA(g.Bounds(src.Bounds()))
支持的過濾器
轉(zhuǎn)換
Crop(rect image.Rectangle)
CropToSize(width, height int, anchor Anchor)
FlipHorizontal()
FlipVertical()
Resize(width, height int, resampling Resampling)
ResizeToFill(width, height int, resampling Resampling, anchor Anchor)
ResizeToFit(width, height int, resampling Resampling)
Rotate(angle float32, backgroundColor color.Color, interpolation Interpolation)
Rotate180()
Rotate270()
Rotate90()
Transpose()
Transverse()
調(diào)整與效果
Brightness(percentage float32)
ColorBalance(percentageRed, percentageGreen, percentageBlue float32)
ColorFunc(fn func(r0, g0, b0, a0 float32) (r, g, b, a float32))
Colorize(hue, saturation, 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)
Pixelate(size int)
Saturation(percentage float32)
Sepia(percentage float32)
Sigmoid(midpoint, factor float32)
Sobel()
UnsharpMask(sigma, amount, thresold float32)
過濾器示例
調(diào)整之使用 lanczos 算法重新采樣
原始圖像
處理后圖像
調(diào)整之使用線性算法重采樣
原始圖像
處理后圖像
調(diào)整大小以適應(yīng) 160x160 像素邊框
原始圖像
處理后圖像
旋轉(zhuǎn) 270 度
原始圖像
處理后圖像
水平翻轉(zhuǎn)
原始圖像
處理后圖像
飽和度提高 50%
原始圖像
處理后圖像