fix(#35): save webp

master
Tomas Aparicio 11 years ago
parent d4bb89a74e
commit 720c2bcf94

@ -72,35 +72,45 @@ func TestInvalidRotate(t *testing.T) {
} }
func TestConvert(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)
}
newImg, err := Resize(buf, options)
if err != nil {
t.Errorf("Resize(imgData, %#v) error: %#v", options, err)
}
if DetermineImageType(newImg) != PNG { files := []string{
t.Fatal("Image is not png") "test.jpg",
"test.png",
"test.webp",
} }
size, _ := Size(newImg) for _, file := range files {
if size.Height != height || size.Width != width { img, err := os.Open("fixtures/" + file)
t.Fatal("Invalid image size") if err != nil {
t.Fatal(err)
}
buf, err := ioutil.ReadAll(img)
if err != nil {
t.Fatal(err)
}
img.Close()
for _, format := range formats {
options := Options{Width: width, Height: height, Crop: true, Type: format}
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)
}
}
} }
Write("fixtures/test_out.png", newImg)
} }
func TestResizePngWithTransparency(t *testing.T) { func TestResizePngWithTransparency(t *testing.T) {

@ -25,6 +25,12 @@ typedef struct {
double Background[3]; double Background[3];
} WatermarkOptions; } WatermarkOptions;
void
vips_enable_cache_set_trace()
{
vips_cache_set_trace(TRUE);
};
int int
vips_affine_interpolator(VipsImage *in, VipsImage **out, double a, double b, double c, double d, VipsInterpolate *interpolator) 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 int
vips_webpsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int quality, int interlace) 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 int
@ -243,9 +249,3 @@ vips_watermark(VipsImage *in, VipsImage **out, WatermarkTextOptions *to, Waterma
g_object_unref(base); g_object_unref(base);
return 0; return 0;
}; };
void
vips_enable_cache_set_trace()
{
vips_cache_set_trace(TRUE);
};

Loading…
Cancel
Save