padding.go 717 B

1234567891011121314151617181920212223242526
  1. package processing
  2. import (
  3. "github.com/imgproxy/imgproxy/v3/imagedata"
  4. "github.com/imgproxy/imgproxy/v3/imath"
  5. "github.com/imgproxy/imgproxy/v3/options"
  6. "github.com/imgproxy/imgproxy/v3/vips"
  7. )
  8. func padding(pctx *pipelineContext, img *vips.Image, po *options.ProcessingOptions, imgdata *imagedata.ImageData) error {
  9. if !po.Padding.Enabled {
  10. return nil
  11. }
  12. paddingTop := imath.Scale(po.Padding.Top, po.Dpr)
  13. paddingRight := imath.Scale(po.Padding.Right, po.Dpr)
  14. paddingBottom := imath.Scale(po.Padding.Bottom, po.Dpr)
  15. paddingLeft := imath.Scale(po.Padding.Left, po.Dpr)
  16. return img.Embed(
  17. img.Width()+paddingLeft+paddingRight,
  18. img.Height()+paddingTop+paddingBottom,
  19. paddingLeft,
  20. paddingTop,
  21. )
  22. }