mirror of
https://github.com/talgo-cloud/bimg.git
synced 2026-03-09 15:38:13 -07:00
fix(#56)
This commit is contained in:
parent
fd4fdee2cc
commit
8fdf28fe5e
1 changed files with 10 additions and 6 deletions
16
vips.go
16
vips.go
|
|
@ -15,6 +15,9 @@ import (
|
|||
"unsafe"
|
||||
)
|
||||
|
||||
// Current libvips version
|
||||
const VipsVersion = string(C.VIPS_VERSION)
|
||||
|
||||
const HasMagickSupport = int(C.VIPS_MAGICK_SUPPORT) == 1
|
||||
|
||||
const (
|
||||
|
|
@ -291,7 +294,6 @@ func vipsPreSave(image *C.VipsImage, o *vipsSaveOptions) (*C.VipsImage, error) {
|
|||
if int(err) != 0 {
|
||||
return nil, catchVipsError()
|
||||
}
|
||||
C.g_object_unref(C.gpointer(image))
|
||||
image = outImage
|
||||
}
|
||||
|
||||
|
|
@ -301,10 +303,11 @@ func vipsPreSave(image *C.VipsImage, o *vipsSaveOptions) (*C.VipsImage, error) {
|
|||
func vipsSave(image *C.VipsImage, o vipsSaveOptions) ([]byte, error) {
|
||||
defer C.g_object_unref(C.gpointer(image))
|
||||
|
||||
image, err := vipsPreSave(image, &o)
|
||||
tmpImage, err := vipsPreSave(image, &o)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer C.g_object_unref(C.gpointer(tmpImage))
|
||||
|
||||
length := C.size_t(0)
|
||||
saveErr := C.int(0)
|
||||
|
|
@ -314,13 +317,13 @@ func vipsSave(image *C.VipsImage, o vipsSaveOptions) ([]byte, error) {
|
|||
var ptr unsafe.Pointer
|
||||
switch o.Type {
|
||||
case WEBP:
|
||||
saveErr = C.vips_webpsave_bridge(image, &ptr, &length, 1, quality)
|
||||
saveErr = C.vips_webpsave_bridge(tmpImage, &ptr, &length, 1, quality)
|
||||
break
|
||||
case PNG:
|
||||
saveErr = C.vips_pngsave_bridge(image, &ptr, &length, 1, C.int(o.Compression), quality, interlace)
|
||||
saveErr = C.vips_pngsave_bridge(tmpImage, &ptr, &length, 1, C.int(o.Compression), quality, interlace)
|
||||
break
|
||||
default:
|
||||
saveErr = C.vips_jpegsave_bridge(image, &ptr, &length, 1, quality, interlace)
|
||||
saveErr = C.vips_jpegsave_bridge(tmpImage, &ptr, &length, 1, quality, interlace)
|
||||
break
|
||||
}
|
||||
|
||||
|
|
@ -355,9 +358,10 @@ func vipsExtract(image *C.VipsImage, left, top, width, height int) (*C.VipsImage
|
|||
|
||||
func vipsShrinkJpeg(buf []byte, input *C.VipsImage, shrink int) (*C.VipsImage, error) {
|
||||
var image *C.VipsImage
|
||||
var ptr = unsafe.Pointer(&buf[0])
|
||||
defer C.g_object_unref(C.gpointer(input))
|
||||
|
||||
err := C.vips_jpegload_buffer_shrink(unsafe.Pointer(&buf[0]), C.size_t(len(buf)), &image, C.int(shrink))
|
||||
err := C.vips_jpegload_buffer_shrink(ptr, C.size_t(len(buf)), &image, C.int(shrink))
|
||||
if err != 0 {
|
||||
return nil, catchVipsError()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue