Browse Source

Fixed autorotation when image is not resized

DarthSim 7 years ago
parent
commit
8556be3426
2 changed files with 37 additions and 33 deletions
  1. 4 0
      CHANGELOG.md
  2. 33 33
      process.go

+ 4 - 0
CHANGELOG.md

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

+ 33 - 33
process.go

@@ -295,56 +295,56 @@ func processImage(data []byte, imgtype imageType, po processingOptions, t *timer
 				}
 				}
 			}
 			}
 		}
 		}
+	}
+
+	if err = vipsImportColourProfile(&img); err != nil {
+		return nil, err
+	}
+
+	if err = vipsFixColourspace(&img); err != nil {
+		return nil, err
+	}
 
 
-		if err = vipsImportColourProfile(&img); err != nil {
+	t.Check()
+
+	if angle != C.VIPS_ANGLE_D0 || flip {
+		if err = vipsImageCopyMemory(&img); err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
 
 
-		if err = vipsFixColourspace(&img); err != nil {
-			return nil, err
+		if angle != C.VIPS_ANGLE_D0 {
+			if err = vipsRotate(&img, angle); err != nil {
+				return nil, err
+			}
 		}
 		}
 
 
-		t.Check()
+		if flip {
+			if err = vipsFlip(&img); err != nil {
+				return nil, err
+			}
+		}
+	}
+
+	t.Check()
 
 
-		if angle != C.VIPS_ANGLE_D0 || flip {
+	if (po.Width != imgWidth || po.Height != imgHeight) && (po.Resize == FILL || po.Resize == CROP) {
+		if po.Gravity == SMART {
 			if err = vipsImageCopyMemory(&img); err != nil {
 			if err = vipsImageCopyMemory(&img); err != nil {
 				return nil, err
 				return nil, err
 			}
 			}
-
-			if angle != C.VIPS_ANGLE_D0 {
-				if err = vipsRotate(&img, angle); err != nil {
-					return nil, err
-				}
+			if err = vipsSmartCrop(&img, po.Width, po.Height); err != nil {
+				return nil, err
 			}
 			}
-
-			if flip {
-				if err = vipsFlip(&img); 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()
 		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
-				}
-			}
-		}
 	}
 	}
 
 
-	t.Check()
-
 	return vipsSaveImage(img, po.Format)
 	return vipsSaveImage(img, po.Format)
 }
 }