reorder before imgProcessor & pass file directly

This commit is contained in:
Fabian Fritzsche 2020-07-04 15:37:53 +02:00
parent e50f0930fe
commit d792ebcb79

View File

@ -3,7 +3,6 @@ package http
import (
"fmt"
"image"
"image/gif"
"net/http"
"github.com/disintegration/imaging"
@ -60,6 +59,20 @@ func handleImagePreview(w http.ResponseWriter, r *http.Request, file *files.File
return errToStatus(err), err
}
fd, err := file.Fs.Open(file.Path)
if err != nil {
return errToStatus(err), err
}
defer fd.Close()
if format == imaging.GIF && size == sizeBig {
_, err := rawFileHandler(w, r, file)
if err != nil {
return errToStatus(err), err
}
return 0, nil
}
var imgProcessor imageProcessor
switch size {
case sizeBig:
@ -74,24 +87,6 @@ func handleImagePreview(w http.ResponseWriter, r *http.Request, file *files.File
return http.StatusBadRequest, fmt.Errorf("unsupported preview size %s", size)
}
fd, err := file.Fs.Open(file.Path)
if err != nil {
return errToStatus(err), err
}
defer fd.Close()
if format == imaging.GIF && size == sizeBig {
g, gerr := gif.DecodeAll(fd)
if gerr != nil {
return errToStatus(gerr), err
}
if gif.EncodeAll(w, g) != nil {
return errToStatus(gerr), err
}
return 0, nil
}
img, err := imaging.Decode(fd, imaging.AutoOrientation(true))
if err != nil {
return errToStatus(err), err