Parcourir la source

Merge branch 'pixel_coordinate' of https://github.com/disintegration/resize into disintegration-pixel_coordinate

jst il y a 11 ans
Parent
commit
b8fbe1cf50
1 fichiers modifiés avec 3 ajouts et 3 suppressions
  1. 3 3
      filters.go

+ 3 - 3
filters.go

@@ -87,7 +87,7 @@ func createWeights8(dy, filterLength int, blur, scale float64, kernel func(float
 	coeffs := make([]int16, dy*filterLength)
 	start := make([]int, dy)
 	for y := 0; y < dy; y++ {
-		interpX := scale * (float64(y) + 0.5)
+		interpX := scale*(float64(y)+0.5) - 0.5
 		start[y] = int(interpX) - filterLength/2 + 1
 		interpX -= float64(start[y])
 		for i := 0; i < filterLength; i++ {
@@ -107,7 +107,7 @@ func createWeights16(dy, filterLength int, blur, scale float64, kernel func(floa
 	coeffs := make([]int32, dy*filterLength)
 	start := make([]int, dy)
 	for y := 0; y < dy; y++ {
-		interpX := scale * (float64(y) + 0.5)
+		interpX := scale*(float64(y)+0.5) - 0.5
 		start[y] = int(interpX) - filterLength/2 + 1
 		interpX -= float64(start[y])
 		for i := 0; i < filterLength; i++ {
@@ -126,7 +126,7 @@ func createWeightsNearest(dy, filterLength int, blur, scale float64) ([]bool, []
 	coeffs := make([]bool, dy*filterLength)
 	start := make([]int, dy)
 	for y := 0; y < dy; y++ {
-		interpX := scale * (float64(y) + 0.5)
+		interpX := scale*(float64(y)+0.5) - 0.5
 		start[y] = int(interpX) - filterLength/2 + 1
 		interpX -= float64(start[y])
 		for i := 0; i < filterLength; i++ {