mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 09:26:16 +03:00
Merge pull request #418 from wiredfool/AurelienBallier-master
PyQT5 Support
This commit is contained in:
commit
e4ae62ae59
|
@ -1,12 +1,16 @@
|
||||||
language: python
|
language: python
|
||||||
|
|
||||||
|
# for python-qt4
|
||||||
|
virtualenv:
|
||||||
|
system_site_packages: true
|
||||||
|
|
||||||
python:
|
python:
|
||||||
- 2.6
|
- 2.6
|
||||||
- 2.7
|
- 2.7
|
||||||
- 3.2
|
- 3.2
|
||||||
- 3.3
|
- 3.3
|
||||||
|
|
||||||
install: "sudo apt-get -qq install libfreetype6-dev liblcms2-dev libwebp-dev ghostscript"
|
install: "sudo apt-get -qq install libfreetype6-dev liblcms2-dev libwebp-dev python-qt4 ghostscript""
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- python setup.py clean
|
- python setup.py clean
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
# 2006-06-03 fl: created
|
# 2006-06-03 fl: created
|
||||||
# 2006-06-04 fl: inherit from QImage instead of wrapping it
|
# 2006-06-04 fl: inherit from QImage instead of wrapping it
|
||||||
# 2006-06-05 fl: removed toimage helper; move string support to ImageQt
|
# 2006-06-05 fl: removed toimage helper; move string support to ImageQt
|
||||||
|
# 2013-11-13 fl: add support for Qt5 (aurelien.ballier@cyclonit.com)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 by Secret Labs AB
|
# Copyright (c) 2006 by Secret Labs AB
|
||||||
# Copyright (c) 2006 by Fredrik Lundh
|
# Copyright (c) 2006 by Fredrik Lundh
|
||||||
|
@ -18,15 +19,18 @@
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from PIL._util import isPath
|
from PIL._util import isPath
|
||||||
|
|
||||||
from PyQt4.QtGui import QImage, qRgb
|
try:
|
||||||
|
from PyQt5.QtGui import QImage, qRgba
|
||||||
|
except:
|
||||||
|
from PyQt4.QtGui import QImage, qRgba
|
||||||
|
|
||||||
##
|
##
|
||||||
# (Internal) Turns an RGB color into a Qt compatible color integer.
|
# (Internal) Turns an RGB color into a Qt compatible color integer.
|
||||||
|
|
||||||
def rgb(r, g, b):
|
def rgb(r, g, b, a=255):
|
||||||
# use qRgb to pack the colors, and then turn the resulting long
|
# use qRgb to pack the colors, and then turn the resulting long
|
||||||
# into a negative integer with the same bitpattern.
|
# into a negative integer with the same bitpattern.
|
||||||
return (qRgb(r, g, b) & 0xffffff) - 0x1000000
|
return (qRgba(r, g, b, a) & 0xffffffff)
|
||||||
|
|
||||||
##
|
##
|
||||||
# An PIL image wrapper for Qt. This is a subclass of PyQt4's QImage
|
# An PIL image wrapper for Qt. This is a subclass of PyQt4's QImage
|
||||||
|
|
|
@ -1,9 +1,37 @@
|
||||||
from tester import *
|
from tester import *
|
||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
try:
|
|
||||||
from PIL import ImageQt
|
|
||||||
except ImportError as v:
|
|
||||||
skip(v)
|
|
||||||
|
|
||||||
success()
|
try:
|
||||||
|
from PyQt5.QtGui import QImage, qRgb, qRgba
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
from PyQt4.QtGui import QImage, qRgb, qRgba
|
||||||
|
except:
|
||||||
|
skip('PyQT4 or 5 not installed')
|
||||||
|
|
||||||
|
from PIL import ImageQt
|
||||||
|
|
||||||
|
def test_rgb():
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
assert_equal(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_equal(val >> 16, r)
|
||||||
|
assert_equal(((val >> 8 ) % 2**8), g)
|
||||||
|
assert_equal(val % 2**8, b)
|
||||||
|
|
||||||
|
checkrgb(0,0,0)
|
||||||
|
checkrgb(255,0,0)
|
||||||
|
checkrgb(0,255,0)
|
||||||
|
checkrgb(0,0,255)
|
||||||
|
|
||||||
|
|
||||||
|
def test_image():
|
||||||
|
for mode in ('1', 'RGB', 'RGBA', 'L', 'P'):
|
||||||
|
assert_no_exception(lambda: ImageQt.ImageQt(lena(mode)))
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
:py:mod:`ImageQt` Module
|
:py:mod:`ImageQt` Module
|
||||||
========================
|
========================
|
||||||
|
|
||||||
The :py:mod:`ImageQt` module contains support for creating PyQt4 QImage objects
|
The :py:mod:`ImageQt` module contains support for creating PyQt4 or PyQt5 QImage objects
|
||||||
from PIL images.
|
from PIL images.
|
||||||
|
|
||||||
.. versionadded:: 1.1.6
|
.. versionadded:: 1.1.6
|
||||||
|
@ -14,7 +14,7 @@ from PIL images.
|
||||||
Creates an :py:class:`~PIL.ImageQt.ImageQt` object from a PIL
|
Creates an :py:class:`~PIL.ImageQt.ImageQt` object from a PIL
|
||||||
:py:class:`~PIL.Image.Image` object. This class is a subclass of
|
:py:class:`~PIL.Image.Image` object. This class is a subclass of
|
||||||
QtGui.QImage, which means that you can pass the resulting objects directly
|
QtGui.QImage, which means that you can pass the resulting objects directly
|
||||||
to PyQt4 API functions and methods.
|
to PyQt4/5 API functions and methods.
|
||||||
|
|
||||||
This operation is currently supported for mode 1, L, P, RGB, and RGBA
|
This operation is currently supported for mode 1, L, P, RGB, and RGBA
|
||||||
images. To handle other modes, you need to convert the image first.
|
images. To handle other modes, you need to convert the image first.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user