mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 17:36:18 +03:00
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
import pytest
|
|
from PIL import ImageQt
|
|
|
|
from .helper import hopper
|
|
|
|
if ImageQt.qt_is_installed:
|
|
from PIL.ImageQt import qRgba
|
|
|
|
|
|
@pytest.mark.skipif(not ImageQt.qt_is_installed, reason="Qt bindings are not installed")
|
|
class PillowQPixmapTestCase:
|
|
@classmethod
|
|
def setup_class(self):
|
|
try:
|
|
if ImageQt.qt_version == "5":
|
|
from PyQt5.QtGui import QGuiApplication
|
|
elif ImageQt.qt_version == "side2":
|
|
from PySide2.QtGui import QGuiApplication
|
|
except ImportError:
|
|
pytest.skip("QGuiApplication not installed")
|
|
return
|
|
|
|
self.app = QGuiApplication([])
|
|
|
|
@classmethod
|
|
def teardown_class(self):
|
|
self.app.quit()
|
|
self.app = None
|
|
|
|
|
|
@pytest.mark.skipif(not ImageQt.qt_is_installed, reason="Qt bindings are not installed")
|
|
def test_rgb():
|
|
# from https://doc.qt.io/archives/qt-4.8/qcolor.html
|
|
# typedef QRgb
|
|
# An ARGB quadruplet on the format #AARRGGBB,
|
|
# equivalent to an unsigned int.
|
|
if ImageQt.qt_version == "5":
|
|
from PyQt5.QtGui import qRgb
|
|
elif ImageQt.qt_version == "side2":
|
|
from PySide2.QtGui import qRgb
|
|
|
|
assert 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
|
|
assert val >> 16 == r
|
|
assert ((val >> 8) % 2 ** 8) == g
|
|
assert val % 2 ** 8 == b
|
|
|
|
checkrgb(0, 0, 0)
|
|
checkrgb(255, 0, 0)
|
|
checkrgb(0, 255, 0)
|
|
checkrgb(0, 0, 255)
|
|
|
|
|
|
@pytest.mark.skipif(not ImageQt.qt_is_installed, reason="Qt bindings are not installed")
|
|
def test_image():
|
|
for mode in ("1", "RGB", "RGBA", "L", "P"):
|
|
ImageQt.ImageQt(hopper(mode))
|