Pillow/Tests/test_imageqt.py
2015-05-30 09:18:27 +10:00

60 lines
1.6 KiB
Python

from helper import unittest, PillowTestCase, hopper
try:
from PIL import ImageQt
from PyQt5.QtGui import QImage, qRgb, qRgba
except:
try:
from PyQt4.QtGui import QImage, qRgb, qRgba
except:
try:
from PySide.QtGui import QImage, qRgb, qRgba
except:
# Will be skipped in setUp
pass
class TestImageQt(PillowTestCase):
def setUp(self):
try:
from PyQt5.QtGui import QImage, qRgb, qRgba
except ImportError:
try:
from PyQt4.QtGui import QImage, qRgb, qRgba
except ImportError:
try:
from PySide.QtGui import QImage, qRgb, qRgba
except ImportError:
self.skipTest('PyQt4 or 5 or PySide not installed')
def test_rgb(self):
# from https://qt-project.org/doc/qt-4.8/qcolor.html
# typedef QRgb
# An ARGB quadruplet on the format #AARRGGBB,
# equivalent to an unsigned int.
self.assertEqual(qRgb(0, 0, 0), qRgba(0, 0, 0, 255))
def checkrgb(r, g, b):
val = ImageQt.rgb(r, g, b)
val = val % 2**24 # drop the alpha
self.assertEqual(val >> 16, r)
self.assertEqual(((val >> 8) % 2**8), g)
self.assertEqual(val % 2**8, b)
checkrgb(0, 0, 0)
checkrgb(255, 0, 0)
checkrgb(0, 255, 0)
checkrgb(0, 0, 255)
def test_image(self):
for mode in ('1', 'RGB', 'RGBA', 'L', 'P'):
ImageQt.ImageQt(hopper(mode))
if __name__ == '__main__':
unittest.main()
# End of file