package templates import ( "crypto/sha256" "encoding/hex" "github.com/h2non/bimg" "log" "os" ) func processFilename(input string) (src, dst string) { src = "resources/images/" + input hash := sha256.Sum256([]byte(input)) dst = "www/images/" + hex.EncodeToString(hash[:])[:16] + ".avif" return src, dst } func convertToAvif(fileName string) string { src, dst := processFilename(fileName) _, err := os.Stat(dst) if err == nil { return dst[4:] } log.Printf("generating image: %s %s", src, dst) buffer, err := bimg.Read(src) if err != nil { log.Fatal(err) } options := bimg.Options{ Type: bimg.AVIF, Quality: 85, } newImage, err := bimg.NewImage(buffer).Process(options) if err != nil { log.Fatal(err) } if err := bimg.Write(dst, newImage); err != nil { log.Fatal(err) } return dst[4:] } templ AvifImage(srcPath, alt string) { { }