Merge remote-tracking branch 'upstream/master' into _util

This commit is contained in:
hugovk 2014-07-07 23:48:19 +03:00
commit c2cf0b4edd
111 changed files with 253 additions and 163 deletions

View File

@ -4,9 +4,18 @@ Changelog (Pillow)
2.6.0 (unreleased) 2.6.0 (unreleased)
------------------ ------------------
- Test PalmImagePlugin and method to skip known bad tests - Fix dispose calculations for animated GIFs #765
[hugovk, wiredfool] [larsjsol]
- 32bit mult overflow fix #782
[wiredfool]
- Added class checking to Image __eq__ function #775
[radarhere, hugovk]
- Test PalmImagePlugin and method to skip known bad tests #776
[hugovk, wiredfool]
2.5.0 (2014-07-01) 2.5.0 (2014-07-01)
------------------ ------------------

View File

@ -17,8 +17,6 @@
import os import os
from PIL import Image, _binary from PIL import Image, _binary
import marshal
try: try:
import zlib import zlib
except ImportError: except ImportError:
@ -26,6 +24,7 @@ except ImportError:
WIDTH = 800 WIDTH = 800
def puti16(fp, values): def puti16(fp, values):
# write network order (big-endian) 16-bit sequence # write network order (big-endian) 16-bit sequence
for v in values: for v in values:
@ -33,6 +32,7 @@ def puti16(fp, values):
v += 65536 v += 65536
fp.write(_binary.o16be(v)) fp.write(_binary.o16be(v))
## ##
# Base class for raster font file handlers. # Base class for raster font file handlers.
@ -95,9 +95,8 @@ class FontFile:
# print chr(i), dst, s # print chr(i), dst, s
self.metrics[i] = d, dst, s self.metrics[i] = d, dst, s
def save(self, filename):
def save1(self, filename): "Save font"
"Save font in version 1 format"
self.compile() self.compile()
@ -107,7 +106,7 @@ class FontFile:
# font metrics # font metrics
fp = open(os.path.splitext(filename)[0] + ".pil", "wb") fp = open(os.path.splitext(filename)[0] + ".pil", "wb")
fp.write(b"PILfont\n") fp.write(b"PILfont\n")
fp.write((";;;;;;%d;\n" % self.ysize).encode('ascii')) # HACK!!! fp.write((";;;;;;%d;\n" % self.ysize).encode('ascii')) # HACK!!!
fp.write(b"DATA\n") fp.write(b"DATA\n")
for id in range(256): for id in range(256):
m = self.metrics[id] m = self.metrics[id]
@ -117,30 +116,4 @@ class FontFile:
puti16(fp, m[0] + m[1] + m[2]) puti16(fp, m[0] + m[1] + m[2])
fp.close() fp.close()
# End of file
def save2(self, filename):
"Save font in version 2 format"
# THIS IS WORK IN PROGRESS
self.compile()
data = marshal.dumps((self.metrics, self.info))
if zlib:
data = b"z" + zlib.compress(data, 9)
else:
data = b"u" + data
fp = open(os.path.splitext(filename)[0] + ".pil", "wb")
fp.write(b"PILfont2\n" + self.name + "\n" + "DATA\n")
fp.write(data)
self.bitmap.save(fp, "PNG")
fp.close()
save = save1 # for now

View File

@ -96,8 +96,15 @@ class GifImageFile(ImageFile.ImageFile):
# rewind # rewind
self.__offset = 0 self.__offset = 0
self.dispose = None self.dispose = None
self.dispose_extent = [0, 0, 0, 0] #x0, y0, x1, y1
self.__frame = -1 self.__frame = -1
self.__fp.seek(self.__rewind) self.__fp.seek(self.__rewind)
self._prev_im = None
self.disposal_method = 0
else:
# ensure that the previous frame was loaded
if not self.im:
self.load()
if frame != self.__frame + 1: if frame != self.__frame + 1:
raise ValueError("cannot seek to frame %d" % frame) raise ValueError("cannot seek to frame %d" % frame)
@ -114,8 +121,7 @@ class GifImageFile(ImageFile.ImageFile):
self.__offset = 0 self.__offset = 0
if self.dispose: if self.dispose:
self.im = self.dispose self.im.paste(self.dispose, self.dispose_extent)
self.dispose = None
from copy import copy from copy import copy
self.palette = copy(self.global_palette) self.palette = copy(self.global_palette)
@ -140,17 +146,16 @@ class GifImageFile(ImageFile.ImageFile):
if flags & 1: if flags & 1:
self.info["transparency"] = i8(block[3]) self.info["transparency"] = i8(block[3])
self.info["duration"] = i16(block[1:3]) * 10 self.info["duration"] = i16(block[1:3]) * 10
try:
# disposal methods # disposal method - find the value of bits 4 - 6
if flags & 8: dispose_bits = 0b00011100 & flags
# replace with background colour dispose_bits = dispose_bits >> 2
self.dispose = Image.core.fill("P", self.size, if dispose_bits:
self.info["background"]) # only set the dispose if it is not
elif flags & 16: # unspecified. I'm not sure if this is
# replace with previous contents # correct, but it seems to prevent the last
self.dispose = self.im.copy() # frame from looking odd for some animations
except (AttributeError, KeyError): self.disposal_method = dispose_bits
pass
elif i8(s) == 255: elif i8(s) == 255:
# #
# application extension # application extension
@ -172,6 +177,7 @@ class GifImageFile(ImageFile.ImageFile):
# extent # extent
x0, y0 = i16(s[0:]), i16(s[2:]) x0, y0 = i16(s[0:]), i16(s[2:])
x1, y1 = x0 + i16(s[4:]), y0 + i16(s[6:]) x1, y1 = x0 + i16(s[4:]), y0 + i16(s[6:])
self.dispose_extent = x0, y0, x1, y1
flags = i8(s[8]) flags = i8(s[8])
interlace = (flags & 64) != 0 interlace = (flags & 64) != 0
@ -194,6 +200,26 @@ class GifImageFile(ImageFile.ImageFile):
pass pass
# raise IOError, "illegal GIF tag `%x`" % i8(s) # raise IOError, "illegal GIF tag `%x`" % i8(s)
try:
if self.disposal_method < 2:
# do not dispose or none specified
self.dispose = None
elif self.disposal_method == 2:
# replace with background colour
self.dispose = Image.core.fill("P", self.size,
self.info["background"])
else:
# replace with previous contents
if self.im:
self.dispose = self.im.copy()
# only dispose the extent in this frame
if self.dispose:
self.dispose = self.dispose.crop(self.dispose_extent)
except (AttributeError, KeyError):
pass
if not self.tile: if not self.tile:
# self.__fp = None # self.__fp = None
raise EOFError("no more images in GIF file") raise EOFError("no more images in GIF file")
@ -205,6 +231,18 @@ class GifImageFile(ImageFile.ImageFile):
def tell(self): def tell(self):
return self.__frame return self.__frame
def load_end(self):
ImageFile.ImageFile.load_end(self)
# if the disposal method is 'do not dispose', transparent
# pixels should show the content of the previous frame
if self._prev_im and self.disposal_method == 1:
# we do this by pasting the updated area onto the previous
# frame which we then use as the current image content
updated = self.im.crop(self.dispose_extent)
self._prev_im.paste(updated, self.dispose_extent, updated.convert('RGBA'))
self.im = self._prev_im
self._prev_im = self.im.copy()
# -------------------------------------------------------------------- # --------------------------------------------------------------------
# Write GIF files # Write GIF files

View File

@ -573,6 +573,8 @@ class Image:
return file return file
def __eq__(self, other): def __eq__(self, other):
if self.__class__.__name__ != other.__class__.__name__:
return False
a = (self.mode == other.mode) a = (self.mode == other.mode)
b = (self.size == other.size) b = (self.size == other.size)
c = (self.getpalette() == other.getpalette()) c = (self.getpalette() == other.getpalette())

View File

@ -0,0 +1,10 @@
#!/usr/bin/env python
from PIL import Image
import sys
if sys.maxsize < 2**32:
im = Image.new('L', (999999, 999999), 0)

View File

@ -5,22 +5,19 @@ from __future__ import print_function
import sys import sys
import tempfile import tempfile
import os import os
import glob
if sys.version_info[:2] <= (2, 6): if sys.version_info[:2] <= (2, 6):
import unittest2 as unittest import unittest2 as unittest
else: else:
import unittest import unittest
def tearDownModule():
#remove me later
pass
class PillowTestCase(unittest.TestCase): class PillowTestCase(unittest.TestCase):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
unittest.TestCase.__init__(self, *args, **kwargs) unittest.TestCase.__init__(self, *args, **kwargs)
self.currentResult = None # holds last result object passed to run method # holds last result object passed to run method:
self.currentResult = None
def run(self, result=None): def run(self, result=None):
self.currentResult = result # remember result for use later self.currentResult = result # remember result for use later
@ -40,7 +37,7 @@ class PillowTestCase(unittest.TestCase):
except OSError: except OSError:
pass # report? pass # report?
else: else:
print("=== orphaned temp file: %s" %path) print("=== orphaned temp file: %s" % path)
def assert_almost_equal(self, a, b, msg=None, eps=1e-6): def assert_almost_equal(self, a, b, msg=None, eps=1e-6):
self.assertLess( self.assertLess(
@ -134,7 +131,7 @@ class PillowTestCase(unittest.TestCase):
if platform is not None: if platform is not None:
skip = sys.platform.startswith(platform) skip = sys.platform.startswith(platform)
if travis is not None: if travis is not None:
skip = skip and (travis == bool(os.environ.get('TRAVIS',False))) skip = skip and (travis == bool(os.environ.get('TRAVIS', False)))
if skip: if skip:
self.skipTest(msg or "Known Bad Test") self.skipTest(msg or "Known Bad Test")
@ -142,8 +139,8 @@ class PillowTestCase(unittest.TestCase):
assert template[:5] in ("temp.", "temp_") assert template[:5] in ("temp.", "temp_")
(fd, path) = tempfile.mkstemp(template[4:], template[:4]) (fd, path) = tempfile.mkstemp(template[4:], template[:4])
os.close(fd) os.close(fd)
self.addCleanup(self.delete_tempfile, path) self.addCleanup(self.delete_tempfile, path)
return path return path
def open_withImagemagick(self, f): def open_withImagemagick(self, f):
@ -155,8 +152,8 @@ class PillowTestCase(unittest.TestCase):
from PIL import Image from PIL import Image
return Image.open(outfile) return Image.open(outfile)
raise IOError() raise IOError()
# helpers # helpers
import sys import sys
@ -210,17 +207,21 @@ def command_succeeds(cmd):
return False return False
return True return True
def djpeg_available(): def djpeg_available():
return command_succeeds(['djpeg', '--help']) return command_succeeds(['djpeg', '--help'])
def cjpeg_available(): def cjpeg_available():
return command_succeeds(['cjpeg', '--help']) return command_succeeds(['cjpeg', '--help'])
def netpbm_available(): def netpbm_available():
return command_succeeds(["ppmquant", "--help"]) and \ return (command_succeeds(["ppmquant", "--help"]) and
command_succeeds(["ppmtogif", "--help"]) command_succeeds(["ppmtogif", "--help"]))
def imagemagick_available(): def imagemagick_available():
return command_succeeds(['convert', '-version']) return command_succeeds(['convert', '-version'])
# End of file # End of file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
Tests/images/iss634.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
import PIL import PIL
import PIL.Image import PIL.Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
import os import os

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
try: try:
import cffi import cffi

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
import io import io

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image, EpsImagePlugin from PIL import Image, EpsImagePlugin
import io import io

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, netpbm_available from helper import unittest, PillowTestCase, lena, netpbm_available
from PIL import Image from PIL import Image
from PIL import GifImagePlugin from PIL import GifImagePlugin
@ -106,6 +106,50 @@ class TestFileGif(PillowTestCase):
GifImagePlugin._save_netpbm(img, 0, tempfile) GifImagePlugin._save_netpbm(img, 0, tempfile)
self.assert_image_similar(img, Image.open(tempfile).convert("L"), 0) self.assert_image_similar(img, Image.open(tempfile).convert("L"), 0)
def test_seek(self):
img = Image.open("Tests/images/dispose_none.gif")
framecount = 0
try:
while True:
framecount += 1
img.seek(img.tell() +1)
except EOFError:
self.assertEqual(framecount, 5)
def test_dispose_none(self):
img = Image.open("Tests/images/dispose_none.gif")
try:
while True:
img.seek(img.tell() +1)
self.assertEqual(img.disposal_method, 1)
except EOFError:
pass
def test_dispose_background(self):
img = Image.open("Tests/images/dispose_bgnd.gif")
try:
while True:
img.seek(img.tell() +1)
self.assertEqual(img.disposal_method, 2)
except EOFError:
pass
def test_dispose_previous(self):
img = Image.open("Tests/images/dispose_prev.gif")
try:
while True:
img.seek(img.tell() +1)
self.assertEqual(img.disposal_method, 3)
except EOFError:
pass
def test_iss634(self):
img = Image.open("Tests/images/iss634.gif")
# seek to the second frame
img.seek(img.tell() +1)
# all transparent pixels should be replaced with the color from the first frame
self.assertEqual(img.histogram()[img.info['transparency']], 0)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, py3 from helper import unittest, PillowTestCase, lena, py3
from helper import djpeg_available, cjpeg_available from helper import djpeg_available, cjpeg_available
import random import random

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from io import BytesIO from io import BytesIO

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, py3 from helper import unittest, PillowTestCase, lena, py3
import os import os

View File

@ -1,4 +1,4 @@
from helper import unittest, tearDownModule from helper import unittest
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, imagemagick_available from helper import unittest, PillowTestCase, lena, imagemagick_available
import os.path import os.path

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
import os.path import os.path

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from io import BytesIO from io import BytesIO

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import SpiderImagePlugin from PIL import SpiderImagePlugin

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image, TarIO from PIL import Image, TarIO

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, py3 from helper import unittest, PillowTestCase, lena, py3
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image, TiffImagePlugin, TiffTags from PIL import Image, TiffImagePlugin, TiffTags

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import FontFile, BdfFontFile from PIL import FontFile, BdfFontFile

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image, FontFile, PcfFontFile from PIL import Image, FontFile, PcfFontFile
from PIL import ImageFont, ImageDraw from PIL import ImageFont, ImageDraw

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
@ -44,6 +44,17 @@ class TestImage(PillowTestCase):
file = self.tempfile("temp.ppm") file = self.tempfile("temp.ppm")
im._dump(file) im._dump(file)
def test_comparison_with_other_type(self):
# Arrange
item = Image.new('RGB', (25, 25), '#000')
num = 12
# Act/Assert
# Shouldn't cause AttributeError (#774)
self.assertFalse(item is None)
self.assertFalse(item == None)
self.assertFalse(item == num)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, fromstring, tostring from helper import unittest, PillowTestCase, fromstring, tostring
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import ImageFilter from PIL import ImageFilter

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageGetColors(PillowTestCase): class TestImageGetColors(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageGetData(PillowTestCase): class TestImageGetData(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageGetExtrema(PillowTestCase): class TestImageGetExtrema(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, py3 from helper import unittest, PillowTestCase, lena, py3
class TestImageGetIm(PillowTestCase): class TestImageGetIm(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageGetPalette(PillowTestCase): class TestImageGetPalette(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageHistogram(PillowTestCase): class TestImageHistogram(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageOffset(PillowTestCase): class TestImageOffset(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
import sys import sys

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
import sys import sys

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import ImagePalette from PIL import ImagePalette

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageResize(PillowTestCase): class TestImageResize(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageRotate(PillowTestCase): class TestImageRotate(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
class TestImageThumbnail(PillowTestCase): class TestImageThumbnail(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, fromstring from helper import unittest, PillowTestCase, lena, fromstring
class TestImageToBitmap(PillowTestCase): class TestImageToBitmap(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import ImageChops from PIL import ImageChops

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageColor from PIL import ImageColor

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import ImageColor from PIL import ImageColor

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import ImageEnhance from PIL import ImageEnhance

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, fromstring, tostring from helper import unittest, PillowTestCase, lena, fromstring, tostring
from io import BytesIO from io import BytesIO

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena, tostring from helper import unittest, PillowTestCase, lena, tostring
from PIL import Image from PIL import Image
from PIL import ImageFileIO from PIL import ImageFileIO

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import ImageFilter from PIL import ImageFilter

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageDraw from PIL import ImageDraw

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
try: try:
from PIL import ImageGrab from PIL import ImageGrab

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageMath from PIL import ImageMath

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import ImageMode from PIL import ImageMode

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import ImageOps from PIL import ImageOps

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageOps from PIL import ImageOps

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import ImagePalette from PIL import ImagePalette

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import ImagePath from PIL import ImagePath

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
try: try:
from PIL import ImageQt from PIL import ImageQt

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import ImageSequence from PIL import ImageSequence

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageShow from PIL import ImageShow

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule, lena from helper import unittest, PillowTestCase, lena
from PIL import Image from PIL import Image
from PIL import ImageStat from PIL import ImageStat

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
class TestImageTk(PillowTestCase): class TestImageTk(PillowTestCase):

View File

@ -1,4 +1,4 @@
from helper import unittest, PillowTestCase, tearDownModule from helper import unittest, PillowTestCase
from PIL import Image from PIL import Image
from PIL import ImageTransform from PIL import ImageTransform

Some files were not shown because too many files have changed in this diff Show More