Pillow/Tests/test_image_mode.py

73 lines
2.2 KiB
Python
Raw Normal View History

from .helper import PillowTestCase, hopper
from PIL import Image
2014-06-10 13:10:47 +04:00
class TestImageMode(PillowTestCase):
def test_sanity(self):
im = hopper()
2014-06-10 13:10:47 +04:00
im.mode
from PIL import ImageMode
ImageMode.getmode("1")
ImageMode.getmode("L")
ImageMode.getmode("P")
ImageMode.getmode("RGB")
ImageMode.getmode("I")
ImageMode.getmode("F")
m = ImageMode.getmode("1")
self.assertEqual(m.mode, "1")
2015-07-03 08:03:25 +03:00
self.assertEqual(str(m), "1")
self.assertEqual(m.bands, ("1",))
self.assertEqual(m.basemode, "L")
self.assertEqual(m.basetype, "L")
2019-06-19 09:30:10 +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)
self.assertEqual(m.mode, mode)
self.assertEqual(str(m), mode)
self.assertEqual(m.bands, ("I",))
self.assertEqual(m.basemode, "L")
self.assertEqual(m.basetype, "L")
m = ImageMode.getmode("RGB")
self.assertEqual(m.mode, "RGB")
2015-07-03 08:03:25 +03:00
self.assertEqual(str(m), "RGB")
self.assertEqual(m.bands, ("R", "G", "B"))
self.assertEqual(m.basemode, "RGB")
self.assertEqual(m.basetype, "L")
2014-06-10 13:10:47 +04:00
def test_properties(self):
def check(mode, *result):
signature = (
2019-06-13 18:54:24 +03:00
Image.getmodebase(mode),
Image.getmodetype(mode),
Image.getmodebands(mode),
Image.getmodebandnames(mode),
)
2014-06-10 13:10:47 +04:00
self.assertEqual(signature, result)
2019-06-13 18:54:24 +03:00
2014-06-10 13:10:47 +04:00
check("1", "L", "L", 1, ("1",))
check("L", "L", "L", 1, ("L",))
2019-03-19 03:13:58 +03:00
check("P", "P", "L", 1, ("P",))
2014-06-10 13:10:47 +04:00
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("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"))