Files
top-wallpaper/resize/resize.go
2025-04-21 23:05:42 -04:00

31 lines
632 B
Go

package resize
import (
"bytes"
"fmt"
"github.com/nfnt/resize"
i "image"
"image/jpeg"
_ "image/png"
)
func Shrink(image string, maxSize uint, quality int) (string, error) {
if quality < 1 || quality > 100 {
return "", fmt.Errorf("quality must be between 1 and 100, got %d", quality)
}
img, _, err := i.Decode(bytes.NewReader([]byte(image)))
if err != nil {
return "", err
}
resizedImg := resize.Thumbnail(maxSize, maxSize, img, resize.Lanczos3)
var buffer bytes.Buffer
err = jpeg.Encode(&buffer, resizedImg, &jpeg.Options{Quality: quality})
if err != nil {
return "", err
}
return buffer.String(), nil
}