mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-28 02:04:36 +03:00
Added USE_RAW_ALPHA
This commit is contained in:
parent
6e45e71052
commit
ff47a59288
|
@ -230,3 +230,13 @@ def test_offset() -> None:
|
||||||
# to exclude the palette size from the pixel data offset
|
# to exclude the palette size from the pixel data offset
|
||||||
with Image.open("Tests/images/pal8_offset.bmp") as im:
|
with Image.open("Tests/images/pal8_offset.bmp") as im:
|
||||||
assert_image_equal_tofile(im, "Tests/images/bmp/g/pal8.bmp")
|
assert_image_equal_tofile(im, "Tests/images/bmp/g/pal8.bmp")
|
||||||
|
|
||||||
|
|
||||||
|
def test_use_raw_alpha(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||||
|
with Image.open("Tests/images/bmp/g/rgb32.bmp") as im:
|
||||||
|
assert im.info["compression"] == BmpImagePlugin.BmpImageFile.COMPRESSIONS["RAW"]
|
||||||
|
assert im.mode == "RGB"
|
||||||
|
|
||||||
|
monkeypatch.setattr(BmpImagePlugin, "USE_RAW_ALPHA", True)
|
||||||
|
with Image.open("Tests/images/bmp/g/rgb32.bmp") as im:
|
||||||
|
assert im.mode == "RGBA"
|
||||||
|
|
|
@ -48,6 +48,8 @@ BIT2MODE = {
|
||||||
32: ("RGB", "BGRX"),
|
32: ("RGB", "BGRX"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
USE_RAW_ALPHA = False
|
||||||
|
|
||||||
|
|
||||||
def _accept(prefix: bytes) -> bool:
|
def _accept(prefix: bytes) -> bool:
|
||||||
return prefix[:2] == b"BM"
|
return prefix[:2] == b"BM"
|
||||||
|
@ -242,7 +244,9 @@ class BmpImageFile(ImageFile.ImageFile):
|
||||||
msg = "Unsupported BMP bitfields layout"
|
msg = "Unsupported BMP bitfields layout"
|
||||||
raise OSError(msg)
|
raise OSError(msg)
|
||||||
elif file_info["compression"] == self.COMPRESSIONS["RAW"]:
|
elif file_info["compression"] == self.COMPRESSIONS["RAW"]:
|
||||||
if file_info["bits"] == 32 and header == 22: # 32-bit .cur offset
|
if file_info["bits"] == 32 and (
|
||||||
|
header == 22 or USE_RAW_ALPHA # 32-bit .cur offset
|
||||||
|
):
|
||||||
raw_mode, self._mode = "BGRA", "RGBA"
|
raw_mode, self._mode = "BGRA", "RGBA"
|
||||||
elif file_info["compression"] in (
|
elif file_info["compression"] in (
|
||||||
self.COMPRESSIONS["RLE8"],
|
self.COMPRESSIONS["RLE8"],
|
||||||
|
|
Loading…
Reference in New Issue
Block a user