mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-27 10:26:19 +03:00
Merge pull request #2221 from jmerdich/master
Add support for another type of BMP bitfield
This commit is contained in:
commit
8c36cd09f7
|
@ -136,12 +136,13 @@ class BmpImageFile(ImageFile.ImageFile):
|
||||||
# ----------------- Process BMP with Bitfields compression (not palette)
|
# ----------------- Process BMP with Bitfields compression (not palette)
|
||||||
if file_info['compression'] == self.BITFIELDS:
|
if file_info['compression'] == self.BITFIELDS:
|
||||||
SUPPORTED = {
|
SUPPORTED = {
|
||||||
32: [(0xff0000, 0xff00, 0xff, 0x0), (0xff0000, 0xff00, 0xff, 0xff000000), (0x0, 0x0, 0x0, 0x0)],
|
32: [(0xff0000, 0xff00, 0xff, 0x0), (0xff0000, 0xff00, 0xff, 0xff000000), (0x0, 0x0, 0x0, 0x0), (0xff000000, 0xff0000, 0xff00, 0x0) ],
|
||||||
24: [(0xff0000, 0xff00, 0xff)],
|
24: [(0xff0000, 0xff00, 0xff)],
|
||||||
16: [(0xf800, 0x7e0, 0x1f), (0x7c00, 0x3e0, 0x1f)]
|
16: [(0xf800, 0x7e0, 0x1f), (0x7c00, 0x3e0, 0x1f)]
|
||||||
}
|
}
|
||||||
MASK_MODES = {
|
MASK_MODES = {
|
||||||
(32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX",
|
(32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX",
|
||||||
|
(32, (0xff000000, 0xff0000, 0xff00, 0x0)): "XBGR",
|
||||||
(32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA",
|
(32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA",
|
||||||
(32, (0x0, 0x0, 0x0, 0x0)): "BGRA",
|
(32, (0x0, 0x0, 0x0, 0x0)): "BGRA",
|
||||||
(24, (0xff0000, 0xff00, 0xff)): "BGR",
|
(24, (0xff0000, 0xff00, 0xff)): "BGR",
|
||||||
|
|
BIN
Tests/images/bmp/q/rgb32bf-xbgr.bmp
Normal file
BIN
Tests/images/bmp/q/rgb32bf-xbgr.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
|
@ -26,12 +26,26 @@ class TestBmpReference(PillowTestCase):
|
||||||
def test_questionable(self):
|
def test_questionable(self):
|
||||||
""" These shouldn't crash/dos, but it's not well defined that these
|
""" These shouldn't crash/dos, but it's not well defined that these
|
||||||
are in spec """
|
are in spec """
|
||||||
|
supported = [
|
||||||
|
"pal8os2v2.bmp",
|
||||||
|
"rgb24prof.bmp",
|
||||||
|
"pal1p1.bmp",
|
||||||
|
"pal8offs.bmp",
|
||||||
|
"rgb24lprof.bmp",
|
||||||
|
"rgb32fakealpha.bmp",
|
||||||
|
"rgb24largepal.bmp",
|
||||||
|
"pal8os2sp.bmp",
|
||||||
|
"rgb32bf-xbgr.bmp",
|
||||||
|
]
|
||||||
for f in self.get_files('q'):
|
for f in self.get_files('q'):
|
||||||
try:
|
try:
|
||||||
im = Image.open(f)
|
im = Image.open(f)
|
||||||
im.load()
|
im.load()
|
||||||
|
if os.path.basename(f) not in supported:
|
||||||
|
print("Please add %s to the partially supported bmp specs." % f)
|
||||||
except Exception: # as msg:
|
except Exception: # as msg:
|
||||||
pass
|
if os.path.basename(f) in supported:
|
||||||
|
raise
|
||||||
# print ("Bad Image %s: %s" %(f,msg))
|
# print ("Bad Image %s: %s" %(f,msg))
|
||||||
|
|
||||||
def test_good(self):
|
def test_good(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user