diff --git a/.vscode/launch.json b/.vscode/launch.json index 0d285e8..9e238de 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,13 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "name": "Launch file", + "type": "go", + "request": "launch", + "mode": "debug", + "program": "${file}" + }, { "name": "Optimize Testdata", "type": "go", diff --git a/pkg/converter/webp/webp_provider.go b/pkg/converter/webp/webp_provider.go index a501791..1766178 100644 --- a/pkg/converter/webp/webp_provider.go +++ b/pkg/converter/webp/webp_provider.go @@ -1,10 +1,13 @@ package webp import ( - "github.com/belphemur/go-webpbin/v2" + "fmt" "image" "io" + "strings" "sync" + + "github.com/belphemur/go-webpbin/v2" ) const libwebpVersion = "1.6.0" @@ -15,8 +18,18 @@ func PrepareEncoder() error { prepareMutex.Lock() defer prepareMutex.Unlock() container := webpbin.NewCWebP(webpbin.SetLibVersion(libwebpVersion)) - return container.BinWrapper.Run() + version, err := container.Version() + if err != nil { + return err + } + + if !strings.HasPrefix(version, libwebpVersion) { + return fmt.Errorf("unexpected webp version: got %s, want %s", version, libwebpVersion) + } + + return nil } + func Encode(w io.Writer, m image.Image, quality uint) error { return webpbin.NewCWebP(webpbin.SetLibVersion(libwebpVersion)). Quality(quality).