mirror of
https://github.com/talgo-cloud/bimg.git
synced 2026-03-08 23:18:19 -07:00
Add support for image watermarks
This commit is contained in:
parent
2ccb6aa8a7
commit
1a661e4e52
9 changed files with 325 additions and 26 deletions
28
vips.go
28
vips.go
|
|
@ -67,6 +67,12 @@ type vipsWatermarkOptions struct {
|
|||
Background [3]C.double
|
||||
}
|
||||
|
||||
type vipsWatermarkImageOptions struct {
|
||||
Left C.int
|
||||
Top C.int
|
||||
Opacity C.float
|
||||
}
|
||||
|
||||
type vipsWatermarkTextOptions struct {
|
||||
Text *C.char
|
||||
Font *C.char
|
||||
|
|
@ -589,3 +595,25 @@ func vipsSharpen(image *C.VipsImage, o Sharpen) (*C.VipsImage, error) {
|
|||
func max(x int) int {
|
||||
return int(math.Max(float64(x), 0))
|
||||
}
|
||||
|
||||
func vipsDrawWatermark(image *C.VipsImage, watermark *C.VipsImage, o WatermarkImage) (*C.VipsImage, error) {
|
||||
var out *C.VipsImage
|
||||
|
||||
if !vipsHasAlpha(image) {
|
||||
C.vips_add_band(image, &image, C.double(255.0))
|
||||
}
|
||||
|
||||
if !vipsHasAlpha(watermark) {
|
||||
C.vips_add_band(watermark, &watermark, C.double(255.0))
|
||||
}
|
||||
|
||||
opts := vipsWatermarkImageOptions{C.int(o.Left), C.int(o.Top), C.float(o.Opacity)}
|
||||
|
||||
err := C.vips_watermark_image(image, watermark, &out, (*C.WatermarkImageOptions)(unsafe.Pointer(&opts)))
|
||||
|
||||
if err != 0 {
|
||||
return nil, catchVipsError()
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue