mirror of
https://github.com/by-jp/www.byjp.me.git
synced 2025-08-10 02:26:08 +01:00
Syndicate is working! Instagra & Pixelfed demonstrated with the new post attached. Lots of TODOs, but functional enough :)
36 lines
627 B
Go
36 lines
627 B
Go
package images
|
|
|
|
import (
|
|
"bytes"
|
|
"image"
|
|
"image/jpeg"
|
|
_ "image/png"
|
|
"io"
|
|
|
|
_ "golang.org/x/image/webp"
|
|
)
|
|
|
|
func ToJPEG(imgData []byte) (io.Reader, error) {
|
|
img, _, err := image.Decode(bytes.NewReader(imgData))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var b bytes.Buffer
|
|
if err := jpeg.Encode(&b, img, &jpeg.Options{Quality: 100}); err != nil {
|
|
return nil, err
|
|
}
|
|
return &b, nil
|
|
}
|
|
|
|
func ToJPEGs(imgsData [][]byte) ([]io.Reader, error) {
|
|
jpgs := make([]io.Reader, len(imgsData))
|
|
for i, img := range imgsData {
|
|
var err error
|
|
jpgs[i], err = ToJPEG(img)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return jpgs, nil
|
|
}
|