Merge pull request #980 from wiredfool/pr_938

4 bit TIFF support
This commit is contained in:
Hugo 2014-10-29 21:41:17 +02:00
commit 4d74b81a15
4 changed files with 47 additions and 20 deletions

View File

@ -149,6 +149,7 @@ OPEN_INFO = {
(II, 0, 1, 2, (8,), ()): ("L", "L;IR"),
(II, 0, 3, 1, (32,), ()): ("F", "F;32F"),
(II, 1, 1, 1, (1,), ()): ("1", "1"),
(II, 1, 1, 1, (4,), ()): ("L", "L;4"),
(II, 1, 1, 2, (1,), ()): ("1", "1;R"),
(II, 1, 1, 1, (8,), ()): ("L", "L"),
(II, 1, 1, 1, (8, 8), (2,)): ("LA", "LA"),

Binary file not shown.

View File

@ -342,6 +342,24 @@ class TestFileLibTiff(LibTiffTestCase):
im.load()
self.assertFalse(im.tag.next)
def test_4bit(self):
# Arrange
test_file = "Tests/images/hopper_gray_4bpp.tif"
original = hopper("L")
# Act
TiffImagePlugin.READ_LIBTIFF = True
im = Image.open(test_file)
TiffImagePlugin.READ_LIBTIFF = False
# Assert
self.assertEqual(im.size, (128, 128))
self.assertEqual(im.mode, "L")
self.assert_image_similar(im, original, 7.3)
if __name__ == '__main__':
unittest.main()

View File

@ -144,7 +144,7 @@ class TestFileTiff(PillowTestCase):
def test_multipage(self):
# issue #862
im = Image.open('Tests/images/multipage.tiff')
# file is a multipage tiff, 10x10 green, 10x10 red, 20x20 blue
# file is a multipage tiff: 10x10 green, 10x10 red, 20x20 blue
im.seek(0)
self.assertEqual(im.size, (10, 10))
@ -166,7 +166,6 @@ class TestFileTiff(PillowTestCase):
self.assertEqual(im.size, (20, 20))
self.assertEqual(im.convert('RGB').getpixel((0, 0)), (0, 0, 255))
def test___str__(self):
# Arrange
file = "Tests/images/pil136.tiff"
@ -199,7 +198,6 @@ class TestFileTiff(PillowTestCase):
def test_load_byte(self):
# Arrange
from PIL import TiffImagePlugin
ifd = TiffImagePlugin.ImageFileDirectory()
data = b"abc"
@ -211,7 +209,6 @@ class TestFileTiff(PillowTestCase):
def test_load_string(self):
# Arrange
from PIL import TiffImagePlugin
ifd = TiffImagePlugin.ImageFileDirectory()
data = b"abc\0"
@ -223,7 +220,6 @@ class TestFileTiff(PillowTestCase):
def test_load_float(self):
# Arrange
from PIL import TiffImagePlugin
ifd = TiffImagePlugin.ImageFileDirectory()
data = b"abcdabcd"
@ -235,7 +231,6 @@ class TestFileTiff(PillowTestCase):
def test_load_double(self):
# Arrange
from PIL import TiffImagePlugin
ifd = TiffImagePlugin.ImageFileDirectory()
data = b"abcdefghabcdefgh"
@ -298,6 +293,19 @@ class TestFileTiff(PillowTestCase):
# Assert
self.assertEqual(ret, [0, 1])
def test_4bit(self):
# Arrange
test_file = "Tests/images/hopper_gray_4bpp.tif"
original = hopper("L")
# Act
im = Image.open(test_file)
# Assert
self.assertEqual(im.size, (128, 128))
self.assertEqual(im.mode, "L")
self.assert_image_similar(im, original, 7.3)
def test_page_number_x_0(self):
# Issue 973