Files
wehub-resource-sync f36e2104d8
tests / ragflow_tests_infinity (push) Has been cancelled
tests / ragflow_tests_elasticsearch (push) Has been cancelled
sep-tests / ragflow_preflight (push) Has been cancelled
sep-tests / ragflow_tests_infinity (push) Has been cancelled
sep-tests / ragflow_tests_elasticsearch (push) Has been cancelled
tests / ragflow_preflight (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:16:49 +08:00

46 lines
1.0 KiB
Go

package util
import (
"bytes"
"encoding/base64"
"image"
"image/jpeg"
"image/png"
)
// EncodePNG encodes img as PNG bytes.
func EncodePNG(img image.Image) ([]byte, error) {
var buf bytes.Buffer
if err := png.Encode(&buf, img); err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// EncodeImageToBase64PNG encodes img as a base64-encoded PNG string.
func EncodeImageToBase64PNG(img image.Image) (string, error) {
data, err := EncodePNG(img)
if err != nil {
return "", err
}
return base64.StdEncoding.EncodeToString(data), nil
}
// DecodeBase64PNG decodes a base64-encoded PNG string to an image.Image.
func DecodeBase64PNG(b64 string) (image.Image, error) {
data, err := base64.StdEncoding.DecodeString(b64)
if err != nil {
return nil, err
}
return png.Decode(bytes.NewReader(data))
}
// EncodeJPEG encodes img as JPEG bytes with quality 90.
func EncodeJPEG(img image.Image) ([]byte, error) {
var buf bytes.Buffer
if err := jpeg.Encode(&buf, img, &jpeg.Options{Quality: 90}); err != nil {
return nil, err
}
return buf.Bytes(), nil
}