瀏覽代碼

Don't scale X/Y for focus point gravity

DarthSim 5 年之前
父節點
當前提交
03bc5c820c
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 3 0
      CHANGELOG.md
  2. 4 2
      process.go

+ 3 - 0
CHANGELOG.md

@@ -4,6 +4,9 @@
 ### Added
 ### Added
 - `trim` processing option.
 - `trim` processing option.
 
 
+### Fixed
+- Fixed focus point crop calculation.
+
 ## [2.8.2] - 2020-01-13
 ## [2.8.2] - 2020-01-13
 ### Changed
 ### Changed
 - Optimized memory usage.
 - Optimized memory usage.

+ 4 - 2
process.go

@@ -324,8 +324,10 @@ func transformImage(ctx context.Context, img *vipsImage, data []byte, po *proces
 
 
 	cropWidth = scaleInt(cropWidth, scale)
 	cropWidth = scaleInt(cropWidth, scale)
 	cropHeight = scaleInt(cropHeight, scale)
 	cropHeight = scaleInt(cropHeight, scale)
-	cropGravity.X *= scale
-	cropGravity.Y *= scale
+	if cropGravity.Type != gravityFocusPoint {
+		cropGravity.X *= scale
+		cropGravity.Y *= scale
+	}
 
 
 	if !trimmed && scale != 1 && data != nil && canScaleOnLoad(imgtype, scale) {
 	if !trimmed && scale != 1 && data != nil && canScaleOnLoad(imgtype, scale) {
 		if imgtype == imageTypeWEBP || imgtype == imageTypeSVG {
 		if imgtype == imageTypeWEBP || imgtype == imageTypeSVG {