-
Notifications
You must be signed in to change notification settings - Fork 0
/
imgmap.go
56 lines (44 loc) · 875 Bytes
/
imgmap.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package adacore
import (
"io/ioutil"
"path/filepath"
)
// ImageMap - image mapping
type ImageMap struct {
MapImgs map[string][]byte
}
// NewImageMap - new ImageMap
func NewImageMap() *ImageMap {
return &ImageMap{
MapImgs: make(map[string][]byte),
}
}
// AddImage - add a image
func (im *ImageMap) AddImage(fn string, fullfn bool) (string, error) {
var key string
if !fullfn {
_, cfn := filepath.Split(fn)
key = cfn
} else {
key = fn
}
_, isok := im.MapImgs[key]
if isok {
return key, ErrDuplicateFNInImageMap
}
buf, err := ioutil.ReadFile(fn)
if err != nil {
return "", err
}
im.MapImgs[key] = buf
return key, nil
}
// AddImageBuff - add a image buffer
func (im *ImageMap) AddImageBuff(name string, buf []byte) error {
_, isok := im.MapImgs[name]
if isok {
return ErrDuplicateBNInImageMap
}
im.MapImgs[name] = buf
return nil
}