1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2024-12-09 09:56:01 +02:00
imgproxy/processing/rotate_and_flip.go

30 lines
598 B
Go
Raw Normal View History

2021-04-26 13:52:50 +02:00
package processing
import (
2021-09-30 16:23:30 +02:00
"github.com/imgproxy/imgproxy/v3/imagedata"
"github.com/imgproxy/imgproxy/v3/options"
"github.com/imgproxy/imgproxy/v3/vips"
2021-04-26 13:52:50 +02:00
)
func rotateAndFlip(pctx *pipelineContext, img *vips.Image, po *options.ProcessingOptions, imgdata *imagedata.ImageData) error {
if pctx.angle%360 == 0 && po.Rotate%360 == 0 && !pctx.flip {
return nil
}
if err := img.CopyMemory(); err != nil {
return err
}
2021-04-26 13:52:50 +02:00
if err := img.Rotate(pctx.angle); err != nil {
return err
}
if pctx.flip {
if err := img.Flip(); err != nil {
return err
}
}
return img.Rotate(po.Rotate)
}