factory.go 602 B

12345678910111213141516171819202122232425262728293031
  1. package imagedata
  2. import (
  3. "bytes"
  4. "net/http"
  5. "strings"
  6. "github.com/imgproxy/imgproxy/v3/imagemeta"
  7. )
  8. // NewFromBytes creates a new ImageData instance from the provided byte slice.
  9. func NewFromBytes(b []byte, headers http.Header) (*ImageData, error) {
  10. r := bytes.NewReader(b)
  11. meta, err := imagemeta.DecodeMeta(r)
  12. if err != nil {
  13. return nil, err
  14. }
  15. // Temporary workaround for the old ImageData interface
  16. h := make(map[string]string, len(headers))
  17. for k, v := range headers {
  18. h[k] = strings.Join(v, ", ")
  19. }
  20. return &ImageData{
  21. data: b,
  22. meta: meta,
  23. Headers: h,
  24. }, nil
  25. }