Merge branch '99designs-vips-reduce'

master
Tomas Aparicio 8 years ago
commit 9c7e27982f

@ -199,7 +199,11 @@ func transformImage(image *C.VipsImage, o Options, shrink int, residual float64)
} }
if o.Force || residual != 0 { if o.Force || residual != 0 {
image, err = vipsAffine(image, residualx, residualy, o.Interpolator) if residualx < 1 && residualy < 1 {
image, err = vipsReduce(image, 1/residualx, 1/residualy)
} else {
image, err = vipsAffine(image, residualx, residualy, o.Interpolator)
}
if err != nil { if err != nil {
return nil, err return nil, err
} }

@ -528,6 +528,18 @@ func vipsShrink(input *C.VipsImage, shrink int) (*C.VipsImage, error) {
return image, nil return image, nil
} }
func vipsReduce(input *C.VipsImage, xshrink float64, yshrink float64) (*C.VipsImage, error) {
var image *C.VipsImage
defer C.g_object_unref(C.gpointer(input))
err := C.vips_reduce_bridge(input, &image, C.double(xshrink), C.double(yshrink))
if err != 0 {
return nil, catchVipsError()
}
return image, nil
}
func vipsEmbed(input *C.VipsImage, left, top, width, height int, extend Extend, background Color) (*C.VipsImage, error) { func vipsEmbed(input *C.VipsImage, left, top, width, height int, extend Extend, background Color) (*C.VipsImage, error) {
var image *C.VipsImage var image *C.VipsImage

@ -122,6 +122,11 @@ vips_shrink_bridge(VipsImage *in, VipsImage **out, double xshrink, double yshrin
return vips_shrink(in, out, xshrink, yshrink, NULL); return vips_shrink(in, out, xshrink, yshrink, NULL);
} }
int
vips_reduce_bridge(VipsImage *in, VipsImage **out, double xshrink, double yshrink) {
return vips_reduce(in, out, xshrink, yshrink, NULL);
}
int int
vips_type_find_bridge(int t) { vips_type_find_bridge(int t) {
if (t == GIF) { if (t == GIF) {

Loading…
Cancel
Save