Fix wrong color with RGBA input
This commit is contained in:
parent
f2d1b73023
commit
f430a41192
|
@ -131,11 +131,11 @@ func resizeRGBA(in *image.RGBA, out *image.NRGBA, scale float64, coeffs []int16,
|
|||
|
||||
// reverse alpha-premultiplication.
|
||||
if a != 0 {
|
||||
r *= 0xffff
|
||||
r *= 0xff
|
||||
r /= a
|
||||
g *= 0xffff
|
||||
g *= 0xff
|
||||
g /= a
|
||||
b *= 0xffff
|
||||
b *= 0xff
|
||||
b /= a
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ func Test_CorrectResize(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func Test_SameColor(t *testing.T) {
|
||||
func Test_SameColorWithRGBA(t *testing.T) {
|
||||
img := image.NewRGBA(image.Rect(0, 0, 20, 20))
|
||||
for y := img.Bounds().Min.Y; y < img.Bounds().Max.Y; y++ {
|
||||
for x := img.Bounds().Min.X; x < img.Bounds().Max.X; x++ {
|
||||
|
@ -56,7 +56,7 @@ func Test_SameColor(t *testing.T) {
|
|||
out := Resize(10, 10, img, Lanczos3)
|
||||
for y := out.Bounds().Min.Y; y < out.Bounds().Max.Y; y++ {
|
||||
for x := out.Bounds().Min.X; x < out.Bounds().Max.X; x++ {
|
||||
color := img.At(x, y).(color.RGBA)
|
||||
color := out.At(x, y).(color.NRGBA)
|
||||
if color.R != 0x80 || color.G != 0x80 || color.B != 0x80 || color.A != 0xFF {
|
||||
t.Fail()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user