mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-04 21:50:54 +03:00
Merge pull request #2447 from hugovk/test-mic
Test MicImagePlugin for correctness
This commit is contained in:
commit
8323ab1149
|
@ -97,6 +97,7 @@ class MicImageFile(TiffImagePlugin.TiffImageFile):
|
||||||
|
|
||||||
return self.frame
|
return self.frame
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
BIN
Tests/images/hopper.mic
Normal file
BIN
Tests/images/hopper.mic
Normal file
Binary file not shown.
|
@ -2,7 +2,6 @@ from helper import unittest, PillowTestCase
|
||||||
|
|
||||||
from PIL import Image, FliImagePlugin
|
from PIL import Image, FliImagePlugin
|
||||||
|
|
||||||
# sample ppm stream
|
|
||||||
# created as an export of a palette image from Gimp2.6
|
# created as an export of a palette image from Gimp2.6
|
||||||
# save as...-> hopper.fli, default options.
|
# save as...-> hopper.fli, default options.
|
||||||
test_file = "Tests/images/hopper.fli"
|
test_file = "Tests/images/hopper.fli"
|
||||||
|
|
|
@ -3,7 +3,6 @@ from helper import unittest, PillowTestCase, hopper
|
||||||
import io
|
import io
|
||||||
from PIL import Image, IcoImagePlugin
|
from PIL import Image, IcoImagePlugin
|
||||||
|
|
||||||
# sample ppm stream
|
|
||||||
TEST_ICO_FILE = "Tests/images/hopper.ico"
|
TEST_ICO_FILE = "Tests/images/hopper.ico"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,50 @@
|
||||||
from helper import unittest, PillowTestCase
|
from helper import unittest, PillowTestCase, hopper
|
||||||
|
|
||||||
from PIL import MicImagePlugin
|
from PIL import Image, ImagePalette, MicImagePlugin
|
||||||
|
|
||||||
|
TEST_FILE = "Tests/images/hopper.mic"
|
||||||
|
|
||||||
|
|
||||||
class TestFileMic(PillowTestCase):
|
class TestFileMic(PillowTestCase):
|
||||||
|
|
||||||
|
def test_sanity(self):
|
||||||
|
im = Image.open(TEST_FILE)
|
||||||
|
im.load()
|
||||||
|
self.assertEqual(im.mode, "RGBA")
|
||||||
|
self.assertEqual(im.size, (128, 128))
|
||||||
|
self.assertEqual(im.format, "MIC")
|
||||||
|
|
||||||
|
# Adjust for the gamma of 2.2 encoded into the file
|
||||||
|
lut = ImagePalette.make_gamma_lut(1/2.2)
|
||||||
|
im = Image.merge('RGBA', [chan.point(lut) for chan in im.split()])
|
||||||
|
|
||||||
|
im2 = hopper("RGBA")
|
||||||
|
self.assert_image_similar(im, im2, 10)
|
||||||
|
|
||||||
|
def test_n_frames(self):
|
||||||
|
im = Image.open(TEST_FILE)
|
||||||
|
|
||||||
|
self.assertEqual(im.n_frames, 1)
|
||||||
|
|
||||||
|
def test_is_animated(self):
|
||||||
|
im = Image.open(TEST_FILE)
|
||||||
|
|
||||||
|
self.assertFalse(im.is_animated)
|
||||||
|
|
||||||
|
def test_tell(self):
|
||||||
|
im = Image.open(TEST_FILE)
|
||||||
|
|
||||||
|
self.assertEqual(im.tell(), 0)
|
||||||
|
|
||||||
|
def test_seek(self):
|
||||||
|
im = Image.open(TEST_FILE)
|
||||||
|
|
||||||
|
im.seek(0)
|
||||||
|
self.assertEqual(im.tell(), 0)
|
||||||
|
|
||||||
|
self.assertRaises(EOFError, lambda: im.seek(99))
|
||||||
|
self.assertEqual(im.tell(), 0)
|
||||||
|
|
||||||
def test_invalid_file(self):
|
def test_invalid_file(self):
|
||||||
# Test an invalid OLE file
|
# Test an invalid OLE file
|
||||||
invalid_file = "Tests/images/flower.jpg"
|
invalid_file = "Tests/images/flower.jpg"
|
||||||
|
|
|
@ -2,11 +2,10 @@ from helper import hopper, unittest, PillowTestCase
|
||||||
|
|
||||||
from PIL import Image, PixarImagePlugin
|
from PIL import Image, PixarImagePlugin
|
||||||
|
|
||||||
# sample ppm stream
|
|
||||||
TEST_FILE = "Tests/images/hopper.pxr"
|
TEST_FILE = "Tests/images/hopper.pxr"
|
||||||
|
|
||||||
|
|
||||||
class TestImagePsd(PillowTestCase):
|
class TestFilePixar(PillowTestCase):
|
||||||
|
|
||||||
def test_sanity(self):
|
def test_sanity(self):
|
||||||
im = Image.open(TEST_FILE)
|
im = Image.open(TEST_FILE)
|
||||||
|
|
|
@ -2,7 +2,6 @@ from helper import hopper, unittest, PillowTestCase
|
||||||
|
|
||||||
from PIL import Image, PsdImagePlugin
|
from PIL import Image, PsdImagePlugin
|
||||||
|
|
||||||
# sample ppm stream
|
|
||||||
test_file = "Tests/images/hopper.psd"
|
test_file = "Tests/images/hopper.psd"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ from helper import unittest, PillowTestCase, hopper
|
||||||
|
|
||||||
from PIL import Image, XpmImagePlugin
|
from PIL import Image, XpmImagePlugin
|
||||||
|
|
||||||
# sample ppm stream
|
|
||||||
TEST_FILE = "Tests/images/hopper.xpm"
|
TEST_FILE = "Tests/images/hopper.xpm"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ are available::
|
||||||
eliminating unused colors. This is only useful if the palette can
|
eliminating unused colors. This is only useful if the palette can
|
||||||
be compressed to the next smaller power of 2 elements.
|
be compressed to the next smaller power of 2 elements.
|
||||||
|
|
||||||
**palette**
|
**palette**
|
||||||
Use the specified palette for the saved image. The palette should
|
Use the specified palette for the saved image. The palette should
|
||||||
be a bytes or bytearray object containing the palette entries in
|
be a bytes or bytearray object containing the palette entries in
|
||||||
RGBRGB... form. It should be no more than 768 bytes. Alternately,
|
RGBRGB... form. It should be no more than 768 bytes. Alternately,
|
||||||
|
@ -789,6 +789,8 @@ PIL identifies and reads Microsoft Image Composer (MIC) files. When opened, the
|
||||||
first sprite in the file is loaded. You can use :py:meth:`~file.seek` and
|
first sprite in the file is loaded. You can use :py:meth:`~file.seek` and
|
||||||
:py:meth:`~file.tell` to read other sprites from the file.
|
:py:meth:`~file.tell` to read other sprites from the file.
|
||||||
|
|
||||||
|
Note that there may be an embedded gamma of 2.2 in MIC files.
|
||||||
|
|
||||||
MPO
|
MPO
|
||||||
^^^
|
^^^
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user