reorder before imgProcessor & pass file directly
This commit is contained in:
parent
e50f0930fe
commit
d792ebcb79
@ -3,7 +3,6 @@ package http
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"image"
|
"image"
|
||||||
"image/gif"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/disintegration/imaging"
|
"github.com/disintegration/imaging"
|
||||||
@ -60,6 +59,20 @@ func handleImagePreview(w http.ResponseWriter, r *http.Request, file *files.File
|
|||||||
return errToStatus(err), err
|
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
|
var imgProcessor imageProcessor
|
||||||
switch size {
|
switch size {
|
||||||
case sizeBig:
|
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)
|
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))
|
img, err := imaging.Decode(fd, imaging.AutoOrientation(true))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errToStatus(err), err
|
return errToStatus(err), err
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user