From 5ca57a1e6846e95bb8ab22f928c64f38bcabeccd Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Wed, 28 Sep 2016 00:14:29 +0100 Subject: [PATCH] fix(background): pass proper background RGB color --- resize.go | 1 - vips.go | 3 ++- vips.h | 8 +++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/resize.go b/resize.go index 9d78f7d..4ccc92b 100644 --- a/resize.go +++ b/resize.go @@ -330,7 +330,6 @@ func imageFlatten(image *C.VipsImage, imageType ImageType, o Options) (*C.VipsIm if imageType != PNG || o.Background == ColorBlack { return image, nil } - return vipsFlattenBackground(image, o.Background) } diff --git a/vips.go b/vips.go index 535f5ad..33ab442 100644 --- a/vips.go +++ b/vips.go @@ -304,7 +304,8 @@ func vipsFlattenBackground(image *C.VipsImage, background Color) (*C.VipsImage, } if vipsHasAlpha(image) { - err := C.vips_flatten_background_brigde(image, &outImage, (*C.double)(&backgroundC[0])) + err := C.vips_flatten_background_brigde(image, &outImage, + backgroundC[0], backgroundC[1], backgroundC[2]) if int(err) != 0 { return nil, catchVipsError() } diff --git a/vips.h b/vips.h index c4e6ed8..3cbe6cf 100644 --- a/vips.h +++ b/vips.h @@ -277,12 +277,10 @@ vips_is_16bit (VipsInterpretation interpretation) { } int -vips_flatten_background_brigde(VipsImage *in, VipsImage **out, double background[3]) { - background[0] *= 256; - background[1] *= 256; - background[2] *= 256; - +vips_flatten_background_brigde(VipsImage *in, VipsImage **out, double r, double g, double b) { + double background[3] = {r, g, b}; VipsArrayDouble *vipsBackground = vips_array_double_new(background, 3); + return vips_flatten(in, out, "background", vipsBackground, "max_alpha", vips_is_16bit(in->Type) ? 65535.0 : 255.0,