Files
top-wallpaper/resize/resize.go
Ron Rise ff66877192
All checks were successful
🚨 Test Code Base / 🔍 🐹 Go Tests (push) Successful in 1m22s
🚨 Test Code Base / 🧹 Lint (push) Successful in 1m31s
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 11m11s
update-deps (#1)
Reviewed-on: #1
Co-authored-by: Ron Rise <ron@siteworxpro.com>
Co-committed-by: Ron Rise <ron@siteworxpro.com>
2025-08-26 16:36:17 +00:00

32 lines
633 B
Go

package resize
import (
"bytes"
"fmt"
i "image"
"image/jpeg"
_ "image/png"
"github.com/nfnt/resize"
)
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
}