mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 17:36:18 +03:00
Fixed effect_spread bug for zero distance
This commit is contained in:
parent
9e6dabf0e5
commit
c83ffc6aea
|
@ -454,6 +454,17 @@ class TestImage:
|
||||||
with Image.open("Tests/images/effect_spread.png") as im3:
|
with Image.open("Tests/images/effect_spread.png") as im3:
|
||||||
assert_image_similar(im2, im3, 110)
|
assert_image_similar(im2, im3, 110)
|
||||||
|
|
||||||
|
def test_effect_spread_zero(self):
|
||||||
|
# Arrange
|
||||||
|
im = hopper()
|
||||||
|
distance = 0
|
||||||
|
|
||||||
|
# Act
|
||||||
|
im2 = im.effect_spread(distance)
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
assert_image_equal(im, im2)
|
||||||
|
|
||||||
def test_check_size(self):
|
def test_check_size(self):
|
||||||
# Checking that the _check_size function throws value errors when we want it to
|
# Checking that the _check_size function throws value errors when we want it to
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
|
|
|
@ -133,13 +133,17 @@ ImagingEffectSpread(Imaging imIn, int distance)
|
||||||
#define SPREAD(type, image)\
|
#define SPREAD(type, image)\
|
||||||
for (y = 0; y < imOut->ysize; y++) {\
|
for (y = 0; y < imOut->ysize; y++) {\
|
||||||
for (x = 0; x < imOut->xsize; x++) {\
|
for (x = 0; x < imOut->xsize; x++) {\
|
||||||
int xx = x + (rand() % distance) - distance/2;\
|
if (distance == 0) {\
|
||||||
int yy = y + (rand() % distance) - distance/2;\
|
imOut->image[y][x] = imIn->image[y][x];\
|
||||||
if (xx >= 0 && xx < imIn->xsize && yy >= 0 && yy < imIn->ysize) {\
|
|
||||||
imOut->image[yy][xx] = imIn->image[y][x];\
|
|
||||||
imOut->image[y][x] = imIn->image[yy][xx];\
|
|
||||||
} else {\
|
} else {\
|
||||||
imOut->image[y][x] = imIn->image[y][x];\
|
int xx = x + (rand() % distance) - distance/2;\
|
||||||
|
int yy = y + (rand() % distance) - distance/2;\
|
||||||
|
if (xx >= 0 && xx < imIn->xsize && yy >= 0 && yy < imIn->ysize) {\
|
||||||
|
imOut->image[yy][xx] = imIn->image[y][x];\
|
||||||
|
imOut->image[y][x] = imIn->image[yy][xx];\
|
||||||
|
} else {\
|
||||||
|
imOut->image[y][x] = imIn->image[y][x];\
|
||||||
|
}\
|
||||||
}\
|
}\
|
||||||
}\
|
}\
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user