1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-02-07 11:36:25 +02:00

Fixed autorotation when image is not resized

This commit is contained in:
DarthSim 2018-05-25 16:25:48 +06:00
parent 0ee53db54c
commit 8556be3426
2 changed files with 40 additions and 36 deletions

View File

@ -1,3 +1,7 @@
## v1.1.5.1
- Fixed autorotation when image is not resazed
## v1.1.5
- Add CORS headers

View File

@ -295,56 +295,56 @@ func processImage(data []byte, imgtype imageType, po processingOptions, t *timer
}
}
}
}
if err = vipsImportColourProfile(&img); err != nil {
if err = vipsImportColourProfile(&img); err != nil {
return nil, err
}
if err = vipsFixColourspace(&img); err != nil {
return nil, err
}
t.Check()
if angle != C.VIPS_ANGLE_D0 || flip {
if err = vipsImageCopyMemory(&img); err != nil {
return nil, err
}
if err = vipsFixColourspace(&img); err != nil {
return nil, err
}
t.Check()
if angle != C.VIPS_ANGLE_D0 || flip {
if err = vipsImageCopyMemory(&img); err != nil {
if angle != C.VIPS_ANGLE_D0 {
if err = vipsRotate(&img, angle); err != nil {
return nil, err
}
if angle != C.VIPS_ANGLE_D0 {
if err = vipsRotate(&img, angle); err != nil {
return nil, err
}
}
if flip {
if err = vipsFlip(&img); err != nil {
return nil, err
}
}
}
t.Check()
if po.Resize == FILL || po.Resize == CROP {
if po.Gravity == SMART {
if err = vipsImageCopyMemory(&img); err != nil {
return nil, err
}
if err = vipsSmartCrop(&img, po.Width, po.Height); err != nil {
return nil, err
}
} else {
left, top := calcCrop(int(img.Xsize), int(img.Ysize), po)
if err = vipsCrop(&img, left, top, po.Width, po.Height); err != nil {
return nil, err
}
if flip {
if err = vipsFlip(&img); err != nil {
return nil, err
}
}
}
t.Check()
if (po.Width != imgWidth || po.Height != imgHeight) && (po.Resize == FILL || po.Resize == CROP) {
if po.Gravity == SMART {
if err = vipsImageCopyMemory(&img); err != nil {
return nil, err
}
if err = vipsSmartCrop(&img, po.Width, po.Height); err != nil {
return nil, err
}
} else {
left, top := calcCrop(int(img.Xsize), int(img.Ysize), po)
if err = vipsCrop(&img, left, top, po.Width, po.Height); err != nil {
return nil, err
}
}
t.Check()
}
return vipsSaveImage(img, po.Format)
}