mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-11 04:07:21 +03:00
Merge pull request #1 from radarhere/ImageOps.contain-function-issue-in-finding-new-size
Round position in pad()
This commit is contained in:
commit
cf4017bfd8
|
@ -110,6 +110,16 @@ def test_contain(new_size):
|
|||
assert new_im.size == (256, 256)
|
||||
|
||||
|
||||
def test_contain_round():
|
||||
im = Image.new("1", (43, 63), 1)
|
||||
new_im = ImageOps.contain(im, (5, 7))
|
||||
assert new_im.width == 5
|
||||
|
||||
im = Image.new("1", (63, 43), 1)
|
||||
new_im = ImageOps.contain(im, (7, 5))
|
||||
assert new_im.height == 5
|
||||
|
||||
|
||||
def test_pad():
|
||||
# Same ratio
|
||||
im = hopper()
|
||||
|
@ -130,6 +140,15 @@ def test_pad():
|
|||
)
|
||||
|
||||
|
||||
def test_pad_round():
|
||||
im = Image.new("1", (1, 1), 1)
|
||||
new_im = ImageOps.pad(im, (4, 1))
|
||||
assert new_im.load()[2, 0] == 1
|
||||
|
||||
new_im = ImageOps.pad(im, (1, 4))
|
||||
assert new_im.load()[0, 2] == 1
|
||||
|
||||
|
||||
def test_pil163():
|
||||
# Division by zero in equalize if < 255 pixels in image (@PIL163)
|
||||
|
||||
|
|
|
@ -292,10 +292,10 @@ def pad(image, size, method=Image.Resampling.BICUBIC, color=None, centering=(0.5
|
|||
else:
|
||||
out = Image.new(image.mode, size, color)
|
||||
if resized.width != size[0]:
|
||||
x = int((size[0] - resized.width) * max(0, min(centering[0], 1)))
|
||||
x = round((size[0] - resized.width) * max(0, min(centering[0], 1)))
|
||||
out.paste(resized, (x, 0))
|
||||
else:
|
||||
y = int((size[1] - resized.height) * max(0, min(centering[1], 1)))
|
||||
y = round((size[1] - resized.height) * max(0, min(centering[1], 1)))
|
||||
out.paste(resized, (0, y))
|
||||
return out
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user