1
0

legacy.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Temporary methods to convert old ImageData to new ImageData and vice versa
  2. package imagedata
  3. import (
  4. "io"
  5. "net/http"
  6. "github.com/imgproxy/imgproxy/v3/imagedatanew"
  7. "github.com/imgproxy/imgproxy/v3/security"
  8. )
  9. // Converts an old ImageData to a new ImageData
  10. func To(old *ImageData) imagedatanew.ImageData {
  11. if old == nil {
  12. return nil
  13. }
  14. headers := make(http.Header)
  15. for k, v := range old.Headers {
  16. headers.Add(k, v)
  17. }
  18. d, err := imagedatanew.NewFromBytes(
  19. old.Data, headers, security.DefaultOptions(),
  20. )
  21. if err != nil {
  22. panic(err) // temp method, can happen
  23. }
  24. return d
  25. }
  26. // Converts a new ImageData to an old ImageData
  27. func From(n imagedatanew.ImageData) *ImageData {
  28. if n == nil {
  29. return nil
  30. }
  31. data, err := io.ReadAll(n.Reader())
  32. if err != nil {
  33. panic(err) // temp method, can happen
  34. }
  35. headers := make(map[string]string)
  36. //nolint:staticcheck
  37. for k, v := range n.Headers() {
  38. headers[k] = v[0]
  39. }
  40. return &ImageData{
  41. Data: data,
  42. Type: n.Format(),
  43. Headers: headers,
  44. }
  45. }