mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Force reloading palette when using mmap in ImageFile.
This commit is contained in:
parent
0a0fe292ec
commit
c74e45e87c
|
@ -170,6 +170,9 @@ class ImageFile(Image.Image):
|
||||||
self.map, self.size, d, e, o, a
|
self.map, self.size, d, e, o, a
|
||||||
)
|
)
|
||||||
readonly = 1
|
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):
|
except (AttributeError, EnvironmentError, ImportError):
|
||||||
self.map = None
|
self.map = None
|
||||||
|
|
||||||
|
|
BIN
Tests/images/multipage-mmap.tiff
Normal file
BIN
Tests/images/multipage-mmap.tiff
Normal file
Binary file not shown.
|
@ -63,5 +63,14 @@ class TestImageSequence(PillowTestCase):
|
||||||
self.assert_image_equal(frame, firstFrame)
|
self.assert_image_equal(frame, firstFrame)
|
||||||
break
|
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__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user