diff --git a/Tests/images/blp/blp1_jpeg.png b/Tests/images/blp/blp1_jpeg.png new file mode 100644 index 00000000000..be151f205ed Binary files /dev/null and b/Tests/images/blp/blp1_jpeg.png differ diff --git a/Tests/test_file_blp.py b/Tests/test_file_blp.py index 917f39530af..c2f8d08cb83 100644 --- a/Tests/test_file_blp.py +++ b/Tests/test_file_blp.py @@ -5,6 +5,11 @@ from .helper import assert_image_equal_tofile +def test_load_blp1(): + with Image.open("Tests/images/blp/blp1_jpeg.blp") as im: + assert_image_equal_tofile(im, "Tests/images/blp/blp1_jpeg.png") + + def test_load_blp2_raw(): with Image.open("Tests/images/blp/blp2_raw.blp") as im: assert_image_equal_tofile(im, "Tests/images/blp/blp2_raw.png") diff --git a/src/PIL/BlpImagePlugin.py b/src/PIL/BlpImagePlugin.py index f6496ccebb2..8fd2b851097 100644 --- a/src/PIL/BlpImagePlugin.py +++ b/src/PIL/BlpImagePlugin.py @@ -392,9 +392,9 @@ def _decode_jpeg_stream(self): data = BytesIO(data) image = JpegImageFile(data) Image._decompression_bomb_check(image.size) - self.tile = image.tile # :/ - self.fd = image.fp - self.mode = image.mode + image.mode = "RGB" + image.tile = [("jpeg", (0, 0) + self.size, 0, ("BGRX", ""))] + self.set_as_raw(image.tobytes()) class BLP2Decoder(_BLPBaseDecoder):