Files
waf-platform/EdgeNode/internal/utils/heif/_libheif/main/main.go
2026-02-04 20:27:13 +08:00

48 lines
1005 B
Go

// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
package main
import (
"bytes"
"fmt"
"github.com/TeaOSLab/EdgeNode/internal/utils/heif/libheif"
"image"
"log"
"os"
"reflect"
_ "image/jpeg"
_ "image/png"
)
func main() {
cwd, err := os.Getwd()
if err != nil {
log.Fatal(err)
return
}
var dir = cwd + "/internal/utils/heif/libheif/main"
data, err := os.ReadFile(dir + "/test.jpg")
if err != nil {
log.Fatal(err)
}
log.Println(image.DecodeConfig(bytes.NewReader(data)))
img, _, err := image.Decode(bytes.NewBuffer(data))
if err != nil {
log.Fatal(err)
}
log.Print(reflect.TypeOf(img).String())
ctx, err := _libheif.EncodeFromImage(img, _libheif.CompressionUndefined, 30, _libheif.LosslessModeDisabled, _libheif.LoggingLevelBasic)
if err != nil {
log.Fatal(fmt.Errorf("encode failed: %w", err))
}
err = ctx.WriteToFile(dir + "/test.avif")
if err != nil {
log.Fatal(fmt.Errorf("write failed: %w", err))
}
}