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:
|
||||
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):
|
||||
# Checking that the _check_size function throws value errors when we want it to
|
||||
with pytest.raises(ValueError):
|
||||
|
|
|
@ -133,13 +133,17 @@ ImagingEffectSpread(Imaging imIn, int distance)
|
|||
#define SPREAD(type, image)\
|
||||
for (y = 0; y < imOut->ysize; y++) {\
|
||||
for (x = 0; x < imOut->xsize; 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];\
|
||||
if (distance == 0) {\
|
||||
imOut->image[y][x] = imIn->image[y][x];\
|
||||
} 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