Skip to content

Commit

Permalink
Added reading 8-bit color images
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Sep 27, 2023
1 parent b723e9e commit cd4adb1
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
Binary file added Tests/images/palette.dds
Binary file not shown.
5 changes: 5 additions & 0 deletions Tests/test_file_dds.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,11 @@ def test_dxt5_colorblock_alpha_issue_4142():
assert px[2] != 0


def test_palette():
with Image.open("Tests/images/palette.dds") as im:
assert_image_equal_tofile(im, "Tests/images/transparent.gif")


def test_unimplemented_pixel_format():
with pytest.raises(NotImplementedError):
with Image.open("Tests/images/unimplemented_pixel_format.dds"):
Expand Down
6 changes: 5 additions & 1 deletion src/PIL/DdsImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import struct
from io import BytesIO

from . import Image, ImageFile
from . import Image, ImageFile, ImagePalette
from ._binary import o32le as o32

# Magic ("DDS ")
Expand Down Expand Up @@ -157,6 +157,10 @@ def _open(self):
rawmode += masks[0xFF0000] + masks[0xFF00] + masks[0xFF]

self.tile = [("raw", (0, 0) + self.size, 0, (rawmode[::-1], 0, 1))]
elif pfflags & DDPF_PALETTEINDEXED8:
self._mode = "P"
self.palette = ImagePalette.raw("RGBA", self.fp.read(1024))
self.tile = [("raw", (0, 0) + self.size, 0, "L")]
else:
data_start = header_size + 4
n = 0
Expand Down

0 comments on commit cd4adb1

Please sign in to comment.