Selaa lähdekoodia

further blur improvements

Grigory Dryapak 7 vuotta sitten
vanhempi
commit
5e63c9a565
1 muutettua tiedostoa jossa 6 lisäystä ja 7 poistoa
  1. 6 7
      effects.go

+ 6 - 7
effects.go

@@ -71,7 +71,7 @@ func blurHorizontal(img image.Image, kernel []float64) *image.NRGBA {
 					b /= a
 				}
 
-				scanLine[idx] = clamp(r)
+				scanLine[idx+0] = clamp(r)
 				scanLine[idx+1] = clamp(g)
 				scanLine[idx+2] = clamp(b)
 				scanLine[idx+3] = clamp(a / wsum)
@@ -96,7 +96,7 @@ func blurVertical(img image.Image, kernel []float64) *image.NRGBA {
 			for i, v := range scanLine {
 				scanLineF[i] = float64(v)
 			}
-			for y, idx := 0, 0; y < src.h; y, idx = y+1, idx+4 {
+			for y := 0; y < src.h; y++ {
 				min := y - radius
 				if min < 0 {
 					min = 0
@@ -111,11 +111,10 @@ func blurVertical(img image.Image, kernel []float64) *image.NRGBA {
 					i := iy * 4
 					weight := kernel[absint(y-iy)]
 					wsum += weight
-					v := scanLineF[i : i+4]
-					wa := v[3] * weight
-					r += v[0] * wa
-					g += v[1] * wa
-					b += v[2] * wa
+					wa := scanLineF[i+3] * weight
+					r += scanLineF[i+0] * wa
+					g += scanLineF[i+1] * wa
+					b += scanLineF[i+2] * wa
 					a += wa
 				}
 				if a != 0 {