diff --git a/worker/b64.go b/worker/b64.go index cdd45c2c..ddeb64b9 100644 --- a/worker/b64.go +++ b/worker/b64.go @@ -5,12 +5,13 @@ import ( "fmt" "image" "image/png" + "io" "os" "github.com/vincent-petithory/dataurl" ) -func SaveImageB64DataUrl(url, outputPath string) error { +func ReadImageB64DataUrl(url string, w io.Writer) error { dataURL, err := dataurl.DecodeString(url) if err != nil { return err @@ -21,15 +22,9 @@ func SaveImageB64DataUrl(url, outputPath string) error { return err } - file, err := os.Create(outputPath) - if err != nil { - return err - } - defer file.Close() - switch dataURL.MediaType.ContentType() { case "image/png": - err = png.Encode(file, img) + err = png.Encode(w, img) // Add cases for other image formats if necessary default: return fmt.Errorf("unsupported image format: %s", dataURL.MediaType.ContentType()) @@ -37,3 +32,13 @@ func SaveImageB64DataUrl(url, outputPath string) error { return err } + +func SaveImageB64DataUrl(url, outputPath string) error { + file, err := os.Create(outputPath) + if err != nil { + return err + } + defer file.Close() + + return ReadImageB64DataUrl(url, file) +}