cursor utils changed to generic CreatePNGImage.

This commit is contained in:
Miroslav Šedivý
2021-02-25 14:15:18 +01:00
parent 8f142e4b91
commit d2eda6f25f
4 changed files with 43 additions and 38 deletions

View File

@ -1,29 +0,0 @@
package utils
import (
"bytes"
"encoding/base64"
"image/png"
"demodesk/neko/internal/types"
)
func GetCursorImage(cursor *types.CursorImage) ([]byte, error) {
out := new(bytes.Buffer)
err := png.Encode(out, cursor.Image)
if err != nil {
return nil, err
}
return out.Bytes(), nil
}
func GetCursorImageURI(cursor *types.CursorImage) (string, error) {
img, err := GetCursorImage(cursor)
if err != nil {
return "", err
}
uri := "data:image/png;base64," + base64.StdEncoding.EncodeToString(img)
return uri, nil
}

39
internal/utils/image.go Normal file
View File

@ -0,0 +1,39 @@
package utils
import (
"bytes"
"encoding/base64"
"image"
"image/jpeg"
"image/png"
)
func CreatePNGImage(img *image.RGBA) ([]byte, error) {
out := new(bytes.Buffer)
err := png.Encode(out, img)
if err != nil {
return nil, err
}
return out.Bytes(), nil
}
func CreateJPGImage(img *image.RGBA, quality int) ([]byte, error) {
out := new(bytes.Buffer)
err := jpeg.Encode(out, img, &jpeg.Options{ Quality: quality })
if err != nil {
return nil, err
}
return out.Bytes(), nil
}
func CreatePNGImageURI(img *image.RGBA) (string, error) {
data, err := CreatePNGImage(img)
if err != nil {
return "", err
}
uri := "data:image/png;base64," + base64.StdEncoding.EncodeToString(data)
return uri, nil
}