mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-27 01:34:24 +03:00
commit
e0a726b42e
BIN
Tests/images/bc4u.dds
Normal file
BIN
Tests/images/bc4u.dds
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -17,6 +17,7 @@ TEST_FILE_DX10_BC5_UNORM = "Tests/images/bc5_unorm.dds"
|
||||||
TEST_FILE_DX10_BC5_SNORM = "Tests/images/bc5_snorm.dds"
|
TEST_FILE_DX10_BC5_SNORM = "Tests/images/bc5_snorm.dds"
|
||||||
TEST_FILE_DX10_BC1 = "Tests/images/bc1.dds"
|
TEST_FILE_DX10_BC1 = "Tests/images/bc1.dds"
|
||||||
TEST_FILE_DX10_BC1_TYPELESS = "Tests/images/bc1_typeless.dds"
|
TEST_FILE_DX10_BC1_TYPELESS = "Tests/images/bc1_typeless.dds"
|
||||||
|
TEST_FILE_BC4U = "Tests/images/bc4u.dds"
|
||||||
TEST_FILE_BC5S = "Tests/images/bc5s.dds"
|
TEST_FILE_BC5S = "Tests/images/bc5s.dds"
|
||||||
TEST_FILE_BC5U = "Tests/images/bc5u.dds"
|
TEST_FILE_BC5U = "Tests/images/bc5u.dds"
|
||||||
TEST_FILE_BC6H = "Tests/images/bc6h.dds"
|
TEST_FILE_BC6H = "Tests/images/bc6h.dds"
|
||||||
|
@ -80,10 +81,18 @@ def test_sanity_dxt5():
|
||||||
assert_image_equal_tofile(im, TEST_FILE_DXT5.replace(".dds", ".png"))
|
assert_image_equal_tofile(im, TEST_FILE_DXT5.replace(".dds", ".png"))
|
||||||
|
|
||||||
|
|
||||||
def test_sanity_ati1():
|
@pytest.mark.parametrize(
|
||||||
|
"image_path",
|
||||||
|
(
|
||||||
|
TEST_FILE_ATI1,
|
||||||
|
# hexeditted to use BC4U FourCC
|
||||||
|
TEST_FILE_BC4U,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
def test_sanity_ati1_bc4u(image_path):
|
||||||
"""Check ATI1 images can be opened"""
|
"""Check ATI1 images can be opened"""
|
||||||
|
|
||||||
with Image.open(TEST_FILE_ATI1) as im:
|
with Image.open(image_path) as im:
|
||||||
im.load()
|
im.load()
|
||||||
|
|
||||||
assert im.format == "DDS"
|
assert im.format == "DDS"
|
||||||
|
@ -210,12 +219,6 @@ def test_dx10_r8g8b8a8_unorm_srgb():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_unimplemented_dxgi_format():
|
|
||||||
with pytest.raises(NotImplementedError):
|
|
||||||
with Image.open("Tests/images/unimplemented_dxgi_format.dds"):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("mode", "size", "test_file"),
|
("mode", "size", "test_file"),
|
||||||
[
|
[
|
||||||
|
|
|
@ -345,11 +345,11 @@ class DdsImageFile(ImageFile.ImageFile):
|
||||||
|
|
||||||
# pixel format
|
# pixel format
|
||||||
pfsize, pfflags, fourcc, bitcount = struct.unpack("<4I", header.read(16))
|
pfsize, pfflags, fourcc, bitcount = struct.unpack("<4I", header.read(16))
|
||||||
masks = struct.unpack("<4I", header.read(16))
|
|
||||||
n = 0
|
n = 0
|
||||||
rawmode = None
|
rawmode = None
|
||||||
if pfflags & DDPF.RGB:
|
if pfflags & DDPF.RGB:
|
||||||
# Texture contains uncompressed RGB data
|
# Texture contains uncompressed RGB data
|
||||||
|
masks = struct.unpack("<4I", header.read(16))
|
||||||
masks = {mask: ["R", "G", "B", "A"][i] for i, mask in enumerate(masks)}
|
masks = {mask: ["R", "G", "B", "A"][i] for i, mask in enumerate(masks)}
|
||||||
if bitcount == 8:
|
if bitcount == 8:
|
||||||
self._mode = "L"
|
self._mode = "L"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user