from PIL import Image, ImageQt from .helper import PillowTestCase, hopper from .test_imageqt import PillowQtTestCase class TestFromQImage(PillowQtTestCase, PillowTestCase): def setUp(self): super().setUp() self.files_to_test = [ hopper(), Image.open("Tests/images/transparent.png"), Image.open("Tests/images/7x13.png"), ] for im in self.files_to_test: self.addCleanup(im.close) def roundtrip(self, expected): # PIL -> Qt intermediate = expected.toqimage() # Qt -> PIL result = ImageQt.fromqimage(intermediate) if intermediate.hasAlphaChannel(): self.assert_image_equal(result, expected.convert("RGBA")) else: self.assert_image_equal(result, expected.convert("RGB")) def test_sanity_1(self): for im in self.files_to_test: self.roundtrip(im.convert("1")) def test_sanity_rgb(self): for im in self.files_to_test: self.roundtrip(im.convert("RGB")) def test_sanity_rgba(self): for im in self.files_to_test: self.roundtrip(im.convert("RGBA")) def test_sanity_l(self): for im in self.files_to_test: self.roundtrip(im.convert("L")) def test_sanity_p(self): for im in self.files_to_test: self.roundtrip(im.convert("P"))