scale.go 550 B

12345678910111213141516171819202122
  1. package processing
  2. import (
  3. "github.com/imgproxy/imgproxy/v3/imagedata"
  4. "github.com/imgproxy/imgproxy/v3/options"
  5. "github.com/imgproxy/imgproxy/v3/vips"
  6. )
  7. func scale(pctx *pipelineContext, img *vips.Image, po *options.ProcessingOptions, imgdata *imagedata.ImageData) error {
  8. if pctx.wscale != 1 || pctx.hscale != 1 {
  9. wscale, hscale := pctx.wscale, pctx.hscale
  10. if (pctx.angle+po.Rotate)%180 == 90 {
  11. wscale, hscale = hscale, wscale
  12. }
  13. if err := img.Resize(wscale, hscale); err != nil {
  14. return err
  15. }
  16. }
  17. return img.CopyMemory()
  18. }