package common import ( "encoding/base64" "os" "strings" ) // ImageFileToBase64 reads an image file and returns a data:image/...;base64 string. func ImageFileToBase64(path string) (string, error) { data, err := os.ReadFile(path) if err != nil { return "", err } ext := strings.ToLower(pathExt(path)) mime := "image/png" switch ext { case ".jpg", ".jpeg": mime = "image/jpeg" case ".gif": mime = "image/gif" case ".webp": mime = "image/webp" } return "data:" + mime + ";base64," + base64.StdEncoding.EncodeToString(data), nil } // pathExt extracts the extension from a path. func pathExt(path string) string { for i := len(path) - 1; i >= 0 && path[i] != '/'; i-- { if path[i] == '.' { return path[i:] } } return "" }