diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-02-02 09:32:00 -0500 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-02-02 09:32:00 -0500 |
commit | 701d1ab638b23c24877fc41824add66232446676 (patch) | |
tree | ec120c88d38ac9d38d9eabdd3270b52bb6ac9d96 /vendor/github.com/disintegration/imaging/effects.go | |
parent | ca3211bc04f6dea34e8168217182637d1419f998 (diff) | |
download | chat-701d1ab638b23c24877fc41824add66232446676.tar.gz chat-701d1ab638b23c24877fc41824add66232446676.tar.bz2 chat-701d1ab638b23c24877fc41824add66232446676.zip |
Updating server dependancies (#5249)
Diffstat (limited to 'vendor/github.com/disintegration/imaging/effects.go')
-rw-r--r-- | vendor/github.com/disintegration/imaging/effects.go | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/vendor/github.com/disintegration/imaging/effects.go b/vendor/github.com/disintegration/imaging/effects.go index fe92e10a2..19d6e405e 100644 --- a/vendor/github.com/disintegration/imaging/effects.go +++ b/vendor/github.com/disintegration/imaging/effects.go @@ -67,15 +67,16 @@ func blurHorizontal(src *image.NRGBA, kernel []float64) *image.NRGBA { for ix := start; ix <= end; ix++ { weight := kernel[absint(x-ix)] i := y*src.Stride + ix*4 - r += float64(src.Pix[i+0]) * weight - g += float64(src.Pix[i+1]) * weight - b += float64(src.Pix[i+2]) * weight - a += float64(src.Pix[i+3]) * weight + wa := float64(src.Pix[i+3]) * weight + r += float64(src.Pix[i+0]) * wa + g += float64(src.Pix[i+1]) * wa + b += float64(src.Pix[i+2]) * wa + a += wa } - r = math.Min(math.Max(r/weightSum, 0.0), 255.0) - g = math.Min(math.Max(g/weightSum, 0.0), 255.0) - b = math.Min(math.Max(b/weightSum, 0.0), 255.0) + r = math.Min(math.Max(r/a, 0.0), 255.0) + g = math.Min(math.Max(g/a, 0.0), 255.0) + b = math.Min(math.Max(b/a, 0.0), 255.0) a = math.Min(math.Max(a/weightSum, 0.0), 255.0) j := y*dst.Stride + x*4 @@ -121,15 +122,16 @@ func blurVertical(src *image.NRGBA, kernel []float64) *image.NRGBA { for iy := start; iy <= end; iy++ { weight := kernel[absint(y-iy)] i := iy*src.Stride + x*4 - r += float64(src.Pix[i+0]) * weight - g += float64(src.Pix[i+1]) * weight - b += float64(src.Pix[i+2]) * weight - a += float64(src.Pix[i+3]) * weight + wa := float64(src.Pix[i+3]) * weight + r += float64(src.Pix[i+0]) * wa + g += float64(src.Pix[i+1]) * wa + b += float64(src.Pix[i+2]) * wa + a += wa } - r = math.Min(math.Max(r/weightSum, 0.0), 255.0) - g = math.Min(math.Max(g/weightSum, 0.0), 255.0) - b = math.Min(math.Max(b/weightSum, 0.0), 255.0) + r = math.Min(math.Max(r/a, 0.0), 255.0) + g = math.Min(math.Max(g/a, 0.0), 255.0) + b = math.Min(math.Max(b/a, 0.0), 255.0) a = math.Min(math.Max(a/weightSum, 0.0), 255.0) j := y*dst.Stride + x*4 |