Skip to content

Commit

Permalink
add ImageHolderByReader
Browse files Browse the repository at this point in the history
  • Loading branch information
oneplus1000 committed Jun 24, 2017
1 parent 244a697 commit 8696d1b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
2 changes: 1 addition & 1 deletion gopdf_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func BenchmarkPdfWithImageHolder(b *testing.B) {
return
}

bytesOfImg, err := ioutil.ReadFile("./test/res/gopher02.png")
bytesOfImg, err := ioutil.ReadFile("./test/res/chilli.jpg")
if err != nil {
b.Error(err)
return
Expand Down
39 changes: 26 additions & 13 deletions image_holder.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ func ImageHolderByBytes(b []byte) (ImageHolder, error) {

//ImageHolderByPath create ImageHolder by image path
func ImageHolderByPath(path string) (ImageHolder, error) {
return newImageFile(path)
return newImageBuffByPath(path)
}

//ImageHolderByReader create ImageHolder by io.Reader
func ImageHolderByReader(r io.Reader) (ImageHolder, error) {
return newImageBuffByReader(r)
}

//imageBuff image holder (impl ImageHolder)
Expand All @@ -42,27 +47,35 @@ func newImageBuff(b []byte) (*imageBuff, error) {
return &i, nil
}

func (i *imageBuff) ID() string {
return i.id
func newImageBuffByPath(path string) (*imageBuff, error) {
var i imageBuff
i.id = path
b, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
i.Write(b)
return &i, nil
}

//imageFile image holder
type imageFile struct {
id string
bytes.Buffer
}
func newImageBuffByReader(r io.Reader) (*imageBuff, error) {

func newImageFile(path string) (*imageFile, error) {
var i imageFile
i.id = path
b, err := ioutil.ReadFile(path)
b, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}

h := md5.New()
_, err = h.Write(b)
if err != nil {
return nil, err
}
var i imageBuff
i.id = fmt.Sprintf("%x", h.Sum(nil))
i.Write(b)
return &i, nil
}

func (i *imageFile) ID() string {
func (i *imageBuff) ID() string {
return i.id
}

0 comments on commit 8696d1b

Please sign in to comment.