Skip to content

Commit 7700293

Browse files
authored
Merge pull request #8793 from radarhere/gd
Fixed loading GD images
2 parents a4f5fea + 51183c2 commit 7700293

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

Tests/test_file_gd.py

+3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44

55
from PIL import GdImageFile, UnidentifiedImageError
66

7+
from .helper import assert_image_similar_tofile
8+
79
TEST_GD_FILE = "Tests/images/hopper.gd"
810

911

1012
def test_sanity() -> None:
1113
with GdImageFile.open(TEST_GD_FILE) as im:
1214
assert im.size == (128, 128)
1315
assert im.format == "GD"
16+
assert_image_similar_tofile(im.convert("RGB"), "Tests/images/hopper.jpg", 14)
1417

1518

1619
def test_bad_mode() -> None:

src/PIL/GdImageFile.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def _open(self) -> None:
5656
msg = "Not a valid GD 2.x .gd file"
5757
raise SyntaxError(msg)
5858

59-
self._mode = "L" # FIXME: "P"
59+
self._mode = "P"
6060
self._size = i16(s, 2), i16(s, 4)
6161

6262
true_color = s[6]
@@ -68,14 +68,14 @@ def _open(self) -> None:
6868
self.info["transparency"] = tindex
6969

7070
self.palette = ImagePalette.raw(
71-
"XBGR", s[7 + true_color_offset + 4 : 7 + true_color_offset + 4 + 256 * 4]
71+
"RGBX", s[7 + true_color_offset + 6 : 7 + true_color_offset + 6 + 256 * 4]
7272
)
7373

7474
self.tile = [
7575
ImageFile._Tile(
7676
"raw",
7777
(0, 0) + self.size,
78-
7 + true_color_offset + 4 + 256 * 4,
78+
7 + true_color_offset + 6 + 256 * 4,
7979
"L",
8080
)
8181
]

0 commit comments

Comments
 (0)