From 720c2bcf94d6d2d68baf330ab44adf3364a52ac2 Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Sun, 26 Apr 2015 20:07:47 +0200 Subject: [PATCH] fix(#35): save webp --- resize_test.go | 56 +++++++++++++++++++++++++++++--------------------- vips.h | 14 ++++++------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/resize_test.go b/resize_test.go index cb8dfe3..a56c57b 100644 --- a/resize_test.go +++ b/resize_test.go @@ -72,35 +72,45 @@ func TestInvalidRotate(t *testing.T) { } func TestConvert(t *testing.T) { - width, height := 640, 480 + width, height := 300, 240 + formats := [3]ImageType{PNG, WEBP, JPEG} - options := Options{Width: width, Height: height, Crop: true, Type: PNG} - img, err := os.Open("fixtures/test.jpg") - if err != nil { - t.Fatal(err) - } - defer img.Close() - - buf, err := ioutil.ReadAll(img) - if err != nil { - t.Fatal(err) + files := []string{ + "test.jpg", + "test.png", + "test.webp", } - newImg, err := Resize(buf, options) - if err != nil { - t.Errorf("Resize(imgData, %#v) error: %#v", options, err) - } + for _, file := range files { + img, err := os.Open("fixtures/" + file) + if err != nil { + t.Fatal(err) + } - if DetermineImageType(newImg) != PNG { - t.Fatal("Image is not png") - } + buf, err := ioutil.ReadAll(img) + if err != nil { + t.Fatal(err) + } + img.Close() - size, _ := Size(newImg) - if size.Height != height || size.Width != width { - t.Fatal("Invalid image size") - } + for _, format := range formats { + options := Options{Width: width, Height: height, Crop: true, Type: format} - Write("fixtures/test_out.png", newImg) + newImg, err := Resize(buf, options) + if err != nil { + t.Errorf("Resize(imgData, %#v) error: %#v", options, err) + } + + if DetermineImageType(newImg) != format { + t.Fatal("Image is not png") + } + + size, _ := Size(newImg) + if size.Height != height || size.Width != width { + t.Fatalf("Invalid image size: %dx%d", size.Width, size.Height) + } + } + } } func TestResizePngWithTransparency(t *testing.T) { diff --git a/vips.h b/vips.h index 445a755..8046e6e 100644 --- a/vips.h +++ b/vips.h @@ -25,6 +25,12 @@ typedef struct { double Background[3]; } WatermarkOptions; +void +vips_enable_cache_set_trace() +{ + vips_cache_set_trace(TRUE); +}; + int vips_affine_interpolator(VipsImage *in, VipsImage **out, double a, double b, double c, double d, VipsInterpolate *interpolator) { @@ -144,7 +150,7 @@ vips_pngsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int compr int vips_webpsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int quality, int interlace) { - return vips_webpsave_buffer(in, buf, len, "strip", strip, "Q", quality, "optimize_coding", TRUE, "interlace", interlace, NULL); + return vips_webpsave_buffer(in, buf, len, "strip", strip, "Q", quality, NULL); }; int @@ -243,9 +249,3 @@ vips_watermark(VipsImage *in, VipsImage **out, WatermarkTextOptions *to, Waterma g_object_unref(base); return 0; }; - -void -vips_enable_cache_set_trace() -{ - vips_cache_set_trace(TRUE); -};