...
1 package httpimg
2
3 import (
4 "io"
5 "net/http"
6
7 "github.com/jung-kurt/gofpdf"
8 )
9
10
11
12 type httpimgPdf interface {
13 GetImageInfo(imageStr string) *gofpdf.ImageInfoType
14 ImageTypeFromMime(mimeStr string) string
15 RegisterImageReader(imgName, tp string, r io.Reader) *gofpdf.ImageInfoType
16 SetError(err error)
17 }
18
19
20
21
22 func Register(f httpimgPdf, urlStr, tp string) (info *gofpdf.ImageInfoType) {
23 info = f.GetImageInfo(urlStr)
24
25 if info != nil {
26 return
27 }
28
29 resp, err := http.Get(urlStr)
30
31 if err != nil {
32 f.SetError(err)
33 return
34 }
35
36 defer resp.Body.Close()
37
38 if tp == "" {
39 tp = f.ImageTypeFromMime(resp.Header["Content-Type"][0])
40 }
41
42 return f.RegisterImageReader(urlStr, tp, resp.Body)
43 }
44
View as plain text