NewImage 创建图片
(source string)
| 44 | |
| 45 | // NewImage 创建图片 |
| 46 | func NewImage(source string) (*Image, error) { |
| 47 | img := &Image{} |
| 48 | |
| 49 | // 判断是 URL 还是文件路径 |
| 50 | if strings.HasPrefix(source, "http://") || strings.HasPrefix(source, "https://") { |
| 51 | img.URL = source |
| 52 | } else if strings.HasPrefix(source, "data:") { |
| 53 | // Data URL |
| 54 | parts := strings.SplitN(source, ",", 2) |
| 55 | if len(parts) == 2 { |
| 56 | img.Data = parts[1] |
| 57 | // 解析 MIME 类型 |
| 58 | if strings.Contains(parts[0], ";") { |
| 59 | img.MimeType = strings.Split(parts[0], ";")[0][5:] // 去掉 "data:" |
| 60 | } |
| 61 | } |
| 62 | } else { |
| 63 | // 文件路径 |
| 64 | return NewImageFromFile(source) |
| 65 | } |
| 66 | |
| 67 | return img, nil |
| 68 | } |
| 69 | |
| 70 | // NewImageFromFile 从文件创建图片 |
| 71 | func NewImageFromFile(path string) (*Image, error) { |
no test coverage detected