mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2024-04-21 12:32:08 +00:00
35 lines
792 B
Go
35 lines
792 B
Go
package plg_image_thumbnail
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
. "github.com/mickael-kerjean/filestash/server/common"
|
|
"io"
|
|
"os/exec"
|
|
)
|
|
|
|
func createThumbnailForJpeg(reader io.ReadCloser) (io.ReadCloser, error) {
|
|
name := "thumbnail_web.bin"
|
|
err := setupProgram(name, binaryThumbnailJpeg)
|
|
if err != nil {
|
|
Log.Warning("plg_image_thumbnail %s")
|
|
reader.Close()
|
|
return nil, err
|
|
}
|
|
|
|
var buf bytes.Buffer
|
|
var errBuff bytes.Buffer
|
|
cmd := exec.Command("/tmp/" + name)
|
|
cmd.Stdin = reader
|
|
cmd.Stdout = &buf
|
|
cmd.Stderr = &errBuff
|
|
if err := cmd.Run(); err != nil {
|
|
reader.Close()
|
|
Log.Debug("plg_image_thumbmail::resize_jpeg ERR %s", string(errBuff.Bytes()))
|
|
return nil, errors.New(string(errBuff.Bytes()))
|
|
}
|
|
cmd.Wait()
|
|
reader.Close()
|
|
return NewReadCloserFromBytes(buf.Bytes()), nil
|
|
}
|