package imageprocessor import ( "testing" "github.com/davidbyttow/govips/v2/vips" ) // TestCheckJPEGXLSupport fails when libvips lacks JPEG XL support, as on // Alpine without the vips-jxl package. func TestCheckJPEGXLSupport(t *testing.T) { t.Parallel() err := CheckJPEGXLSupport() if err != nil { t.Fatalf("CheckJPEGXLSupport() error = %v", err) } } // TestLibvipsSavesAndLoadsJPEGXL saves an image as JPEG XL with govips and // loads it back. It fails when libvips lacks JPEG XL support, as on Alpine // without the vips-jxl package. func TestLibvipsSavesAndLoadsJPEGXL(t *testing.T) { t.Parallel() img, err := vips.NewImageFromBuffer(createTestJPEG(t, 64, 48)) if err != nil { t.Fatalf("failed to load test JPEG: %v", err) } defer img.Close() jxl, _, err := img.ExportJxl(vips.NewJxlExportParams()) if err != nil { t.Fatalf("ExportJxl() error = %v", err) } loaded, err := vips.NewImageFromBuffer(jxl) if err != nil { t.Fatalf("failed to load the JPEG XL image: %v", err) } defer loaded.Close() if loaded.Format() != vips.ImageTypeJXL { t.Errorf("loaded format = %s, want jxl", vips.ImageTypes[loaded.Format()]) } if loaded.Width() != 64 || loaded.Height() != 48 { t.Errorf("loaded size = %dx%d, want 64x48", loaded.Width(), loaded.Height()) } }