diff --git a/proxy/proxy.go b/proxy/proxy.go index 90053ad..75a2d96 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -142,7 +142,8 @@ func (p *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } - image, _ = transform.Transform(*image, req.Options) + b, _ := transform.Transform(image.Bytes, req.Options) + image.Bytes = b w.Header().Add("Content-Length", strconv.Itoa(len(image.Bytes))) w.Header().Add("Expires", image.Expires.Format(time.RFC1123)) diff --git a/transform/transform.go b/transform/transform.go index fdabc27..edf20d4 100644 --- a/transform/transform.go +++ b/transform/transform.go @@ -30,14 +30,14 @@ import ( var emptyOptions = new(data.Options) // Transform the provided image. -func Transform(img data.Image, opt *data.Options) (*data.Image, error) { +func Transform(img []byte, opt *data.Options) ([]byte, error) { if opt == nil || reflect.DeepEqual(opt, emptyOptions) { // bail if no transformation was requested - return &img, nil + return img, nil } // decode image - m, format, err := image.Decode(bytes.NewReader(img.Bytes)) + m, format, err := image.Decode(bytes.NewReader(img)) if err != nil { return nil, err } @@ -103,6 +103,5 @@ func Transform(img data.Image, opt *data.Options) (*data.Image, error) { break } - img.Bytes = buf.Bytes() - return &img, nil + return buf.Bytes(), nil }