ico_data.go 488 B

12345678910111213141516171819202122232425262728
  1. package main
  2. import (
  3. "bytes"
  4. "image"
  5. "image/draw"
  6. _ "github.com/mat/besticon/ico"
  7. )
  8. func icoData(data []byte) (out []byte, width int, height int, err error) {
  9. var ico image.Image
  10. ico, _, err = image.Decode(bytes.NewReader(data))
  11. if err != nil {
  12. return
  13. }
  14. // Ensure that image is in RGBA format
  15. rgba := image.NewRGBA(ico.Bounds())
  16. draw.Draw(rgba, ico.Bounds(), ico, image.ZP, draw.Src)
  17. width = rgba.Bounds().Dx()
  18. height = rgba.Bounds().Dy()
  19. out = rgba.Pix
  20. return
  21. }