Pillow/Tests/test_image_mode.py

72 lines
1.7 KiB
Python
Raw Normal View History

from PIL import Image, ImageMode
2020-01-27 14:46:52 +03:00
from .helper import hopper
2014-06-10 13:10:47 +04:00
2020-01-27 14:46:52 +03:00
def test_sanity():
2014-06-10 13:10:47 +04:00
2020-01-27 14:46:52 +03:00
with hopper() as im:
im.mode
2014-06-10 13:10:47 +04:00
2020-01-27 14:46:52 +03:00
ImageMode.getmode("1")
ImageMode.getmode("L")
ImageMode.getmode("P")
ImageMode.getmode("RGB")
ImageMode.getmode("I")
ImageMode.getmode("F")
2020-01-27 14:46:52 +03:00
m = ImageMode.getmode("1")
assert m.mode == "1"
assert str(m) == "1"
assert m.bands == ("1",)
assert m.basemode == "L"
assert m.basetype == "L"
assert m.typestr == "|b1"
2020-01-27 14:46:52 +03:00
for mode in (
"I;16",
"I;16S",
"I;16L",
"I;16LS",
"I;16B",
"I;16BS",
"I;16N",
"I;16NS",
):
m = ImageMode.getmode(mode)
assert m.mode == mode
assert str(m) == mode
assert m.bands == ("I",)
assert m.basemode == "L"
assert m.basetype == "L"
2020-01-27 14:46:52 +03:00
m = ImageMode.getmode("RGB")
assert m.mode == "RGB"
assert str(m) == "RGB"
assert m.bands == ("R", "G", "B")
assert m.basemode == "RGB"
assert m.basetype == "L"
assert m.typestr == "|u1"
2019-06-13 18:54:24 +03:00
2020-01-27 14:46:52 +03:00
def test_properties():
def check(mode, *result):
signature = (
Image.getmodebase(mode),
Image.getmodetype(mode),
Image.getmodebands(mode),
Image.getmodebandnames(mode),
)
assert signature == result
check("1", "L", "L", 1, ("1",))
check("L", "L", "L", 1, ("L",))
check("P", "P", "L", 1, ("P",))
check("I", "L", "I", 1, ("I",))
check("F", "L", "F", 1, ("F",))
check("RGB", "RGB", "L", 3, ("R", "G", "B"))
check("RGBA", "RGB", "L", 4, ("R", "G", "B", "A"))
check("RGBX", "RGB", "L", 4, ("R", "G", "B", "X"))
check("CMYK", "RGB", "L", 4, ("C", "M", "Y", "K"))
check("YCbCr", "RGB", "L", 3, ("Y", "Cb", "Cr"))