icns

Easily create .icns files (Mac Icons) with this Go library or the included CLI.
Log | Files | Refs | LICENSE

commit 4dd89592b0e8241c19428d503edc74e226a54267
parent 635e3d8352f9301dc7585ec9453b9c618fcdb5ec
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date:   Mon, 12 Feb 2018 13:17:12 +0100

[*] Pulled `Icon.encodeImage` into a func to make it easier to test.

Diffstat:
Mwriter.go | 22+++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/writer.go b/writer.go @@ -42,19 +42,27 @@ func (i *Icon) encodeImage() error { if len(i.data) > 0 { return nil } + data, err := encodeImage(i.Image, i.format) + if err != nil { + return err + } + i.data = data + return nil +} + +func encodeImage(img image.Image, format string) ([]byte, error) { buf := bytes.NewBuffer(nil) - switch i.format { + switch format { case "jpeg": - if err := jpeg.Encode(buf, i.Image, nil); err != nil { - return err + if err := jpeg.Encode(buf, img, nil); err != nil { + return nil, err } default: - if err := png.Encode(buf, i.Image); err != nil { - return err + if err := png.Encode(buf, img); err != nil { + return nil, err } } - i.data = buf.Bytes() - return nil + return buf.Bytes(), nil } func (i *Icon) writeHeader(wr io.Writer) (int64, error) {