mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-14 21:56:56 +03:00
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
from tester import *
|
||
|
|
||
|
from PIL import Image
|
||
|
|
||
|
def test_crop():
|
||
|
def crop(mode):
|
||
|
out = lena(mode).crop((50, 50, 100, 100))
|
||
|
assert_equal(out.mode, mode)
|
||
|
assert_equal(out.size, (50, 50))
|
||
|
for mode in "1", "P", "L", "RGB", "I", "F":
|
||
|
yield_test(crop, mode)
|
||
|
|
||
|
def test_wide_crop():
|
||
|
|
||
|
def crop(*bbox):
|
||
|
i = im.crop(bbox)
|
||
|
h = i.histogram()
|
||
|
while h and not h[-1]:
|
||
|
del h[-1]
|
||
|
return tuple(h)
|
||
|
|
||
|
im = Image.new("L", (100, 100), 1)
|
||
|
|
||
|
assert_equal(crop(0, 0, 100, 100), (0, 10000))
|
||
|
assert_equal(crop(25, 25, 75, 75), (0, 2500))
|
||
|
|
||
|
# sides
|
||
|
assert_equal(crop(-25, 0, 25, 50), (1250, 1250))
|
||
|
assert_equal(crop(0, -25, 50, 25), (1250, 1250))
|
||
|
assert_equal(crop(75, 0, 125, 50), (1250, 1250))
|
||
|
assert_equal(crop(0, 75, 50, 125), (1250, 1250))
|
||
|
|
||
|
assert_equal(crop(-25, 25, 125, 75), (2500, 5000))
|
||
|
assert_equal(crop(25, -25, 75, 125), (2500, 5000))
|
||
|
|
||
|
# corners
|
||
|
assert_equal(crop(-25, -25, 25, 25), (1875, 625))
|
||
|
assert_equal(crop(75, -25, 125, 25), (1875, 625))
|
||
|
assert_equal(crop(75, 75, 125, 125), (1875, 625))
|
||
|
assert_equal(crop(-25, 75, 25, 125), (1875, 625))
|
||
|
|
||
|
# --------------------------------------------------------------------
|
||
|
|
||
|
def test_negative_crop():
|
||
|
# Check negative crop size (@PIL171)
|
||
|
|
||
|
im = Image.new("L", (512, 512))
|
||
|
im = im.crop((400, 400, 200, 200))
|
||
|
|
||
|
assert_equal(im.size, (0, 0))
|
||
|
assert_equal(len(im.getdata()), 0)
|
||
|
assert_exception(IndexError, lambda: im.getdata()[0])
|