Merge pull request #1591 from radarhere/health

Health fixes
This commit is contained in:
wiredfool 2015-12-14 21:00:09 +00:00
commit 436daee5e0
19 changed files with 48 additions and 49 deletions

View File

@ -134,9 +134,13 @@ class BmpImageFile(ImageFile.ImageFile):
24: [(0xff0000, 0xff00, 0xff)],
16: [(0xf800, 0x7e0, 0x1f), (0x7c00, 0x3e0, 0x1f)]}
MASK_MODES = {
(32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX", (32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA", (32, (0x0, 0x0, 0x0, 0x0)): "BGRA",
(24, (0xff0000, 0xff00, 0xff)): "BGR",
(16, (0xf800, 0x7e0, 0x1f)): "BGR;16", (16, (0x7c00, 0x3e0, 0x1f)): "BGR;15"}
(32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX",
(32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA",
(32, (0x0, 0x0, 0x0, 0x0)): "BGRA",
(24, (0xff0000, 0xff00, 0xff)): "BGR",
(16, (0xf800, 0x7e0, 0x1f)): "BGR;16",
(16, (0x7c00, 0x3e0, 0x1f)): "BGR;15"
}
if file_info['bits'] in SUPPORTED:
if file_info['bits'] == 32 and file_info['rgba_mask'] in SUPPORTED[file_info['bits']]:
raw_mode = MASK_MODES[(file_info['bits'], file_info['rgba_mask'])]

View File

@ -295,7 +295,7 @@ class EpsImageFile(ImageFile.ImageFile):
break
try:
self.mode = self.mode_map[int(mo)]
except:
except ValueError:
break
self.size = int(x), int(y)

View File

@ -397,10 +397,8 @@ def _save(im, fp, filename, save_all=False):
fp.write(b";") # end of file
try:
if hasattr(fp, "flush"):
fp.flush()
except:
pass
def get_interlace(im):

View File

@ -650,9 +650,9 @@ class Image(object):
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
@ -2278,7 +2278,7 @@ def open(fp, mode="r"):
except (SyntaxError, IndexError, TypeError, struct.error):
# Leave disabled by default, spams the logs with image
# opening failures that are entirely expected.
#logger.debug("", exc_info=True)
# logger.debug("", exc_info=True)
continue
return None

View File

@ -42,6 +42,7 @@ from PIL._util import isStringType
# Application code should use the <b>Draw</b> factory, instead of
# directly.
class ImageDraw(object):
##
@ -297,7 +298,6 @@ class ImageDraw(object):
def multiline_textsize(self, text, font=None, spacing=0):
max_width = 0
height = 0
lines = self._multiline_split(text)
line_spacing = self.textsize('A', font=font)[1] + spacing
for line in lines:

View File

@ -85,6 +85,7 @@ def fromqpixmap(im):
# bytes_io.seek(0)
# return Image.open(bytes_io)
def align8to32(bytes, width, mode):
"""
converts each scanline of data from 8 bit to 32 bit aligned
@ -113,6 +114,7 @@ def align8to32(bytes, width, mode):
return b''.join(new_data)
def _toqclass_helper(im):
data = None
colortable = None

View File

@ -719,7 +719,6 @@ def jpeg_factory(fp=None, filename=None):
except SyntaxError:
warnings.warn("Image appears to be a malformed MPO file, it will be "
"interpreted as a base JPEG file")
pass
return im

View File

@ -56,7 +56,7 @@ class PyAccess(object):
# Debugging is polluting test traces, only useful here
# when hacking on PyAccess
#logger.debug("%s", vals)
# logger.debug("%s", vals)
self._post_init()
def _post_init(self):

View File

@ -64,7 +64,7 @@ for o, a in opt:
printerArgs = ["lpr"]
elif o == "-P":
# printer channel
printerArgs = ["lpr","-P%s" % a]
printerArgs = ["lpr", "-P%s" % a]
for filepath in argv:
try:

View File

@ -13,7 +13,7 @@ from helper import unittest, PillowTestCase
from PIL import Image
try:
import numpy as np
except:
except ImportError:
raise unittest.SkipTest("numpy not installed")
YDIM = 32769

View File

@ -82,7 +82,7 @@ class TestImageSpider(PillowTestCase):
def test_invalid_file(self):
invalid_file = "Tests/images/invalid.spider"
self.assertRaises(IOError, lambda: Image.open(invalid_file))

View File

@ -80,11 +80,11 @@ class TestFileTiff(PillowTestCase):
filename = "Tests/images/pil168.tif"
im = Image.open(filename)
#legacy api
# legacy api
self.assert_(isinstance(im.tag[X_RESOLUTION][0], tuple))
self.assert_(isinstance(im.tag[Y_RESOLUTION][0], tuple))
#v2 api
# v2 api
self.assert_(isinstance(im.tag_v2[X_RESOLUTION], float))
self.assert_(isinstance(im.tag_v2[Y_RESOLUTION], float))
@ -249,7 +249,7 @@ class TestFileTiff(PillowTestCase):
{256: 55, 257: 43, 258: (8, 8, 8, 8), 259: 1,
262: 2, 296: 2, 273: (8,), 338: (1,), 277: 4,
279: (9460,), 282: 72.0, 283: 72.0, 284: 1})
# legacy interface
self.assertEqual(
im.tag.as_dict(),

View File

@ -28,7 +28,7 @@ class TestFileTiffMetadata(PillowTestCase):
#
# For text items, we still have to decode('ascii','replace') because
# the tiff file format can't take 8 bit bytes in that field.
basetextdata = "This is some arbitrary metadata for a text field"
bindata = basetextdata.encode('ascii') + b" \xff"
textdata = basetextdata + " " + chr(255)
@ -40,7 +40,7 @@ class TestFileTiffMetadata(PillowTestCase):
ImageJMetaData = tag_ids['ImageJMetaData']
ImageJMetaDataByteCounts = tag_ids['ImageJMetaDataByteCounts']
ImageDescription = tag_ids['ImageDescription']
info[ImageJMetaDataByteCounts] = len(bindata)
info[ImageJMetaData] = bindata
info[tag_ids['RollAngle']] = floatdata
@ -49,7 +49,7 @@ class TestFileTiffMetadata(PillowTestCase):
info.tagtype[tag_ids['YawAngle']] = 12
info[ImageDescription] = textdata
f = self.tempfile("temp.tif")
img.save(f, tiffinfo=info)
@ -70,7 +70,6 @@ class TestFileTiffMetadata(PillowTestCase):
loaded_double = loaded.tag[tag_ids['YawAngle']][0]
self.assertAlmostEqual(loaded_double, doubledata)
def test_read_metadata(self):
img = Image.open('Tests/images/hopper_g4.tif')
@ -167,7 +166,6 @@ class TestFileTiffMetadata(PillowTestCase):
self.assert_(im.info['icc_profile'])
if __name__ == '__main__':
unittest.main()

View File

@ -11,7 +11,7 @@ class TestFromQImage(PillowQtTestCase, PillowTestCase):
Image.open('Tests/images/transparent.png'),
Image.open('Tests/images/7x13.png'),
]
def roundtrip(self, expected):
# PIL -> Qt
intermediate = expected.toqimage()

View File

@ -24,13 +24,13 @@ class TestImageOpsUsm(PillowTestCase):
def test_filter_api(self):
filter = ImageFilter.GaussianBlur(2.0)
i = im.filter(filter)
test_filter = ImageFilter.GaussianBlur(2.0)
i = im.filter(test_filter)
self.assertEqual(i.mode, "RGB")
self.assertEqual(i.size, (128, 128))
filter = ImageFilter.UnsharpMask(2.0, 125, 8)
i = im.filter(filter)
test_filter = ImageFilter.UnsharpMask(2.0, 125, 8)
i = im.filter(test_filter)
self.assertEqual(i.mode, "RGB")
self.assertEqual(i.size, (128, 128))

View File

@ -9,7 +9,7 @@ from io import BytesIO
if sys.platform.startswith('win32'):
import ctypes.wintypes
class BITMAPFILEHEADER(ctypes.Structure):
_pack_ = 2
_fields_ = [
@ -40,27 +40,26 @@ if sys.platform.startswith('win32'):
DIB_RGB_COLORS = 0
memcpy = ctypes.cdll.msvcrt.memcpy
memcpy.argtypes = [ ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t ]
memcpy.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_size_t]
CreateCompatibleDC = ctypes.windll.gdi32.CreateCompatibleDC
CreateCompatibleDC.argtypes = [ ctypes.wintypes.HDC ]
CreateCompatibleDC.argtypes = [ctypes.wintypes.HDC]
CreateCompatibleDC.restype = ctypes.wintypes.HDC
DeleteDC = ctypes.windll.gdi32.DeleteDC
DeleteDC.argtypes = [ ctypes.wintypes.HDC ]
DeleteDC.argtypes = [ctypes.wintypes.HDC]
SelectObject = ctypes.windll.gdi32.SelectObject
SelectObject.argtypes = [ ctypes.wintypes.HDC, ctypes.wintypes.HGDIOBJ ]
SelectObject.argtypes = [ctypes.wintypes.HDC, ctypes.wintypes.HGDIOBJ]
SelectObject.restype = ctypes.wintypes.HGDIOBJ
DeleteObject = ctypes.windll.gdi32.DeleteObject
DeleteObject.argtypes = [ ctypes.wintypes.HGDIOBJ ]
DeleteObject.argtypes = [ctypes.wintypes.HGDIOBJ]
CreateDIBSection = ctypes.windll.gdi32.CreateDIBSection
CreateDIBSection.argtypes = [ ctypes.wintypes.HDC, ctypes.c_void_p, ctypes.c_uint, ctypes.POINTER(ctypes.c_void_p), ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD ]
CreateDIBSection.argtypes = [ctypes.wintypes.HDC, ctypes.c_void_p, ctypes.c_uint, ctypes.POINTER(ctypes.c_void_p), ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD]
CreateDIBSection.restype = ctypes.wintypes.HBITMAP
def serialize_dib(bi, pixels):
bf = BITMAPFILEHEADER()
bf.bfType = 0x4d42
@ -78,7 +77,7 @@ if sys.platform.startswith('win32'):
class TestImageWinPointers(PillowTestCase):
def test_pointer(self):
im = hopper()
(width, height) =im.size
(width, height) = im.size
opath = self.tempfile('temp.png')
imdib = ImageWin.Dib(im)
@ -94,7 +93,7 @@ if sys.platform.startswith('win32'):
hdr.biClrImportant = 0
hdc = CreateCompatibleDC(None)
#print('hdc:',hex(hdc))
# print('hdc:',hex(hdc))
pixels = ctypes.c_void_p()
dib = CreateDIBSection(hdc, ctypes.byref(hdr), DIB_RGB_COLORS, ctypes.byref(pixels), None, 0)
SelectObject(hdc, dib)
@ -108,4 +107,3 @@ if sys.platform.startswith('win32'):
if __name__ == '__main__':
unittest.main()

View File

@ -22,9 +22,9 @@ class TestNumpy(PillowTestCase):
def test_numpy_to_image(self):
def to_image(dtype, bands=1, bool=0):
def to_image(dtype, bands=1, boolean=0):
if bands == 1:
if bool:
if boolean:
data = [0, 1] * 50
else:
data = list(range(100))
@ -43,8 +43,8 @@ class TestNumpy(PillowTestCase):
# print dtype, list(i.getdata())
return i
# self.assert_image(to_image(numpy.bool, bool=1), "1", (10, 10))
# self.assert_image(to_image(numpy.bool8, bool=1), "1", (10, 10))
# self.assert_image(to_image(numpy.bool, boolean=1), "1", (10, 10))
# self.assert_image(to_image(numpy.bool8, boolean=1), "1", (10, 10))
self.assertRaises(TypeError, lambda: to_image(numpy.uint))
self.assert_image(to_image(numpy.uint8), "L", (10, 10))

View File

@ -52,10 +52,10 @@ class TestOleFileIo(PillowTestCase):
ole = OleFileIO.OleFileIO(ole_file)
# Act
type = ole.get_type('worddocument')
entry_type = ole.get_type('worddocument')
# Assert
self.assertEqual(type, OleFileIO.STGTY_STREAM)
self.assertEqual(entry_type, OleFileIO.STGTY_STREAM)
ole.close()
def test_get_size(self):

View File

@ -22,8 +22,8 @@ class TestPickle(PillowTestCase):
self.assertEqual(im, loaded_im)
def helper_pickle_string(self, pickle, protocol=0,
file='Tests/images/hopper.jpg', mode=None):
im = Image.open(file)
test_file='Tests/images/hopper.jpg', mode=None):
im = Image.open(test_file)
if mode:
im = im.convert(mode)
@ -69,7 +69,7 @@ class TestPickle(PillowTestCase):
"Tests/images/p_trns_single.png",
"Tests/images/pil123p.png"
]:
self.helper_pickle_string(pickle, file=test_file)
self.helper_pickle_string(pickle, test_file=test_file)
def test_pickle_l_mode(self):
# Arrange