Merge pull request #2139 from SemanticsOS/lambdafu/multipage-tiff-palette

Force reloading palette when using mmap in ImageFile.
This commit is contained in:
wiredfool 2016-09-29 08:20:25 -07:00 committed by GitHub
commit 0902120f09
3 changed files with 12 additions and 0 deletions

View File

@ -170,6 +170,9 @@ class ImageFile(Image.Image):
self.map, self.size, d, e, o, a
)
readonly = 1
# After trashing self.im, we might need to reload the palette data.
if self.palette:
self.palette.dirty = 1
except (AttributeError, EnvironmentError, ImportError):
self.map = None

Binary file not shown.

View File

@ -63,5 +63,14 @@ class TestImageSequence(PillowTestCase):
self.assert_image_equal(frame, firstFrame)
break
def test_palette_mmap(self):
# Using mmap in ImageFile can require to reload the palette.
im = Image.open('Tests/images/multipage-mmap.tiff')
color1 = im.getpalette()[0:3]
im.seek(0)
color2 = im.getpalette()[0:3]
self.assertEqual(color1, color2)
if __name__ == '__main__':
unittest.main()