mirror of
https://github.com/talgo-cloud/bimg.git
synced 2026-03-11 00:10:27 -07:00
fix(#35): save webp
This commit is contained in:
parent
d4bb89a74e
commit
720c2bcf94
2 changed files with 40 additions and 30 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
14
vips.h
14
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);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue