From b685c18e95487076897d75004d21a01e1c748157 Mon Sep 17 00:00:00 2001 From: panjing <599194993@qq.com> Date: Sat, 4 Apr 2020 11:22:11 +0800 Subject: [PATCH 001/139] Save in icns format to support all operating systems. --- src/PIL/IcnsImagePlugin.py | 95 ++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index c003926154e..ce317f12c20 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -6,11 +6,13 @@ # # history: # 2004-10-09 fl Turned into a PIL plugin; removed 2.3 dependencies. +# 2020-04-04 Save in icns format to support all operating systems. # # Copyright (c) 2004 by Bob Ippolito. # Copyright (c) 2004 by Secret Labs. # Copyright (c) 2004 by Fredrik Lundh. # Copyright (c) 2014 by Alastair Houghton. +# Copyright (c) 2020 by Pan Jing. # # See the README file for information on usage and redistribution. # @@ -130,7 +132,6 @@ def read_png_or_jpeg2000(fobj, start_length, size): class IcnsFile: - SIZES = { (512, 512, 2): [(b"ic10", read_png_or_jpeg2000)], (512, 512, 1): [(b"ic09", read_png_or_jpeg2000)], @@ -302,65 +303,71 @@ def load(self): self.load_end() +def to_int(s): + b = s.encode('ascii') + return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3] + + +MAGIC = to_int("icns") +HEADER_SIZE = 8 +TOC = 'TOC ' + + def _save(im, fp, filename): """ Saves the image as a series of PNG files, that are then converted to a .icns file - using the macOS command line utility 'iconutil'. - macOS only. + Support for arbitrary systems """ if hasattr(fp, "flush"): fp.flush() - # create the temporary set of pngs - with tempfile.TemporaryDirectory(".iconset") as iconset: - provided_images = { - im.width: im for im in im.encoderinfo.get("append_images", []) - } - last_w = None - second_path = None - for w in [16, 32, 128, 256, 512]: - prefix = "icon_{}x{}".format(w, w) - - first_path = os.path.join(iconset, prefix + ".png") - if last_w == w: - shutil.copyfile(second_path, first_path) - else: - im_w = provided_images.get(w, im.resize((w, w), Image.LANCZOS)) - im_w.save(first_path) - - second_path = os.path.join(iconset, prefix + "@2x.png") - im_w2 = provided_images.get(w * 2, im.resize((w * 2, w * 2), Image.LANCZOS)) - im_w2.save(second_path) - last_w = w * 2 - - # iconutil -c icns -o {} {} - - convert_cmd = ["iconutil", "-c", "icns", "-o", filename, iconset] - convert_proc = subprocess.Popen( - convert_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - - convert_proc.stdout.close() - - retcode = convert_proc.wait() - - if retcode: - raise subprocess.CalledProcessError(retcode, convert_cmd) + # size + sizes = [128, 256, 512, 32, 64, 256, 512, 1024] + size_str = ['ic07', 'ic08', 'ic09', 'ic11', 'ic12', 'ic13', 'ic14', 'ic10'] + file_size = 0 + entries = [] + for index, s in enumerate(sizes): + temp = io.BytesIO() + nb = im.resize((s, s)) + nb.save(temp, 'png') + file_size += len(temp.getvalue()) + entries.append({ + 'type': size_str[index], + 'size': len(temp.getvalue()), + 'stream': temp + }) + + # Header + fp.write(struct.pack('i', MAGIC)[::-1]) + fp.write(struct.pack('i', file_size)[::-1]) + + # TOC + toc_size = HEADER_SIZE + (len(entries) * HEADER_SIZE) + fp.write(struct.pack('i', to_int(TOC))[::-1]) + fp.write(struct.pack('i', toc_size)[::-1]) + for e in entries: + fp.write(struct.pack('i', to_int(e.get('type')))[::-1]) + fp.write(struct.pack('i', HEADER_SIZE + e.get('size'))[::-1]) + + # Data + for index, e in enumerate(entries): + fp.write(struct.pack('i', to_int(e.get('type')))[::-1]) + fp.write(struct.pack('i', HEADER_SIZE + e.get('size'))[::-1]) + fp.write(e.get('stream').getvalue()) + + fp.flush() Image.register_open(IcnsImageFile.format, IcnsImageFile, lambda x: x[:4] == b"icns") Image.register_extension(IcnsImageFile.format, ".icns") -if sys.platform == "darwin": - Image.register_save(IcnsImageFile.format, _save) - - Image.register_mime(IcnsImageFile.format, "image/icns") - +# if sys.platform == "darwin": +Image.register_save(IcnsImageFile.format, _save) +Image.register_mime(IcnsImageFile.format, "image/icns") if __name__ == "__main__": - if len(sys.argv) < 2: print("Syntax: python IcnsImagePlugin.py [file]") sys.exit() From 4500acb27471f37b5cf9c8de910c28334db6dce7 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 4 Apr 2020 15:02:02 +1100 Subject: [PATCH 002/139] Lint fixes --- src/PIL/IcnsImagePlugin.py | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index ce317f12c20..8d02e44e482 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -19,11 +19,8 @@ import io import os -import shutil import struct -import subprocess import sys -import tempfile from PIL import Image, ImageFile, PngImagePlugin from PIL._binary import i8 @@ -304,13 +301,13 @@ def load(self): def to_int(s): - b = s.encode('ascii') + b = s.encode("ascii") return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3] MAGIC = to_int("icns") HEADER_SIZE = 8 -TOC = 'TOC ' +TOC = "TOC " def _save(im, fp, filename): @@ -325,37 +322,35 @@ def _save(im, fp, filename): # size sizes = [128, 256, 512, 32, 64, 256, 512, 1024] - size_str = ['ic07', 'ic08', 'ic09', 'ic11', 'ic12', 'ic13', 'ic14', 'ic10'] + size_str = ["ic07", "ic08", "ic09", "ic11", "ic12", "ic13", "ic14", "ic10"] file_size = 0 entries = [] for index, s in enumerate(sizes): temp = io.BytesIO() nb = im.resize((s, s)) - nb.save(temp, 'png') + nb.save(temp, "png") file_size += len(temp.getvalue()) - entries.append({ - 'type': size_str[index], - 'size': len(temp.getvalue()), - 'stream': temp - }) + entries.append( + {"type": size_str[index], "size": len(temp.getvalue()), "stream": temp} + ) # Header - fp.write(struct.pack('i', MAGIC)[::-1]) - fp.write(struct.pack('i', file_size)[::-1]) + fp.write(struct.pack("i", MAGIC)[::-1]) + fp.write(struct.pack("i", file_size)[::-1]) # TOC toc_size = HEADER_SIZE + (len(entries) * HEADER_SIZE) - fp.write(struct.pack('i', to_int(TOC))[::-1]) - fp.write(struct.pack('i', toc_size)[::-1]) + fp.write(struct.pack("i", to_int(TOC))[::-1]) + fp.write(struct.pack("i", toc_size)[::-1]) for e in entries: - fp.write(struct.pack('i', to_int(e.get('type')))[::-1]) - fp.write(struct.pack('i', HEADER_SIZE + e.get('size'))[::-1]) + fp.write(struct.pack("i", to_int(e.get("type")))[::-1]) + fp.write(struct.pack("i", HEADER_SIZE + e.get("size"))[::-1]) # Data for index, e in enumerate(entries): - fp.write(struct.pack('i', to_int(e.get('type')))[::-1]) - fp.write(struct.pack('i', HEADER_SIZE + e.get('size'))[::-1]) - fp.write(e.get('stream').getvalue()) + fp.write(struct.pack("i", to_int(e.get("type")))[::-1]) + fp.write(struct.pack("i", HEADER_SIZE + e.get("size"))[::-1]) + fp.write(e.get("stream").getvalue()) fp.flush() From 5ef382f61279185dec365cd2122ef2768c8cd237 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 4 Apr 2020 15:02:15 +1100 Subject: [PATCH 003/139] Test all operating systems --- Tests/test_file_icns.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Tests/test_file_icns.py b/Tests/test_file_icns.py index aeb146f7ec2..9278888fcac 100644 --- a/Tests/test_file_icns.py +++ b/Tests/test_file_icns.py @@ -1,5 +1,4 @@ import io -import sys import pytest from PIL import IcnsImagePlugin, Image @@ -25,7 +24,6 @@ def test_sanity(): assert im.format == "ICNS" -@pytest.mark.skipif(sys.platform != "darwin", reason="Requires macOS") def test_save(tmp_path): temp_file = str(tmp_path / "temp.icns") @@ -38,7 +36,6 @@ def test_save(tmp_path): assert reread.format == "ICNS" -@pytest.mark.skipif(sys.platform != "darwin", reason="Requires macOS") def test_save_append_images(tmp_path): temp_file = str(tmp_path / "temp.icns") provided_im = Image.new("RGBA", (32, 32), (255, 0, 0, 128)) From ea98bb61638f3c65ecd8236798ff85a83b211476 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 4 Apr 2020 14:54:49 +1100 Subject: [PATCH 004/139] Restored append_images --- src/PIL/IcnsImagePlugin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 8d02e44e482..8a576315cb2 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -325,9 +325,10 @@ def _save(im, fp, filename): size_str = ["ic07", "ic08", "ic09", "ic11", "ic12", "ic13", "ic14", "ic10"] file_size = 0 entries = [] + provided_images = {im.width: im for im in im.encoderinfo.get("append_images", [])} for index, s in enumerate(sizes): temp = io.BytesIO() - nb = im.resize((s, s)) + nb = provided_images[s] if s in provided_images else im.resize((s, s)) nb.save(temp, "png") file_size += len(temp.getvalue()) entries.append( From cc1e78ccdfea5783c449b006c4e9cadc713cd459 Mon Sep 17 00:00:00 2001 From: panjing <599194993@qq.com> Date: Tue, 7 Apr 2020 13:59:27 +0800 Subject: [PATCH 005/139] Remove unused packages --- src/PIL/IcnsImagePlugin.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index ce317f12c20..4edf8759e82 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -19,11 +19,8 @@ import io import os -import shutil import struct -import subprocess import sys -import tempfile from PIL import Image, ImageFile, PngImagePlugin from PIL._binary import i8 @@ -363,7 +360,6 @@ def _save(im, fp, filename): Image.register_open(IcnsImageFile.format, IcnsImageFile, lambda x: x[:4] == b"icns") Image.register_extension(IcnsImageFile.format, ".icns") -# if sys.platform == "darwin": Image.register_save(IcnsImageFile.format, _save) Image.register_mime(IcnsImageFile.format, "image/icns") From a618e2ca1cd1b761ffaa6ea9c95b25b92f597d9d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 7 Apr 2020 21:13:40 +1000 Subject: [PATCH 006/139] Fixed big-endian saving --- src/PIL/IcnsImagePlugin.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 660de2b9250..963ad199e48 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -336,21 +336,21 @@ def _save(im, fp, filename): ) # Header - fp.write(struct.pack("i", MAGIC)[::-1]) - fp.write(struct.pack("i", file_size)[::-1]) + fp.write(struct.pack(" Date: Tue, 7 Apr 2020 21:11:16 +1000 Subject: [PATCH 007/139] Marked to_int() as private --- src/PIL/IcnsImagePlugin.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 963ad199e48..e3b274295fb 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -300,12 +300,12 @@ def load(self): self.load_end() -def to_int(s): +def _to_int(s): b = s.encode("ascii") return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3] -MAGIC = to_int("icns") +MAGIC = _to_int("icns") HEADER_SIZE = 8 TOC = "TOC " @@ -341,15 +341,15 @@ def _save(im, fp, filename): # TOC toc_size = HEADER_SIZE + (len(entries) * HEADER_SIZE) - fp.write(struct.pack(" Date: Tue, 7 Apr 2020 21:17:09 +1000 Subject: [PATCH 008/139] ICNS can now be saved on non-macOS platforms [ci skip] --- docs/handbook/image-file-formats.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index a12de82e2c0..7bb846b2a3e 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -200,12 +200,16 @@ attributes before loading the file:: ICNS ^^^^ -Pillow reads and (macOS only) writes macOS ``.icns`` files. By default, the +Pillow reads and writes macOS ``.icns`` files. By default, the largest available icon is read, though you can override this by setting the :py:attr:`~PIL.Image.Image.size` property before calling :py:meth:`~PIL.Image.Image.load`. The :py:meth:`~PIL.Image.Image.open` method sets the following :py:attr:`~PIL.Image.Image.info` property: +.. note:: + + Prior to version 7.2.0, Pillow could only write ICNS files on macOS. + **sizes** A list of supported sizes found in this icon file; these are a 3-tuple, ``(width, height, scale)``, where ``scale`` is 2 for a retina From 84b7e268f9646d4aac968f4fb921e84bd01ef432 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 7 Apr 2020 21:18:37 +1000 Subject: [PATCH 009/139] Merged HEADER_SIZE into HEADERSIZE --- src/PIL/IcnsImagePlugin.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index e3b274295fb..98603e2f967 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -306,7 +306,6 @@ def _to_int(s): MAGIC = _to_int("icns") -HEADER_SIZE = 8 TOC = "TOC " @@ -340,17 +339,17 @@ def _save(im, fp, filename): fp.write(struct.pack(" Date: Tue, 7 Apr 2020 21:42:23 +1000 Subject: [PATCH 010/139] Do not save two temporary files for the same size --- src/PIL/IcnsImagePlugin.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 98603e2f967..cf9b5dcf5e8 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -325,10 +325,12 @@ def _save(im, fp, filename): file_size = 0 entries = [] provided_images = {im.width: im for im in im.encoderinfo.get("append_images", [])} - for index, s in enumerate(sizes): - temp = io.BytesIO() + temp_sizes = {s: io.BytesIO() for s in set(sizes)} + for s, temp in temp_sizes.items(): nb = provided_images[s] if s in provided_images else im.resize((s, s)) nb.save(temp, "png") + for index, s in enumerate(sizes): + temp = temp_sizes[s] file_size += len(temp.getvalue()) entries.append( {"type": size_str[index], "size": len(temp.getvalue()), "stream": temp} @@ -343,14 +345,14 @@ def _save(im, fp, filename): fp.write(struct.pack(" Date: Sat, 17 Oct 2020 20:20:59 +0200 Subject: [PATCH 011/139] De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables Re-order the JPEG quantization tables to normal order when loading. This wastes a few CPU cycles if you don't need them. But it has the advantage of hiding the zigzag order JPEG implementation detail of these tables completely from Pillow users. This difference has led to cases where: * arrays in zigzag order were taken from a dict and passed directly as a qtables parameter, causing them to be "zigzagged" again by libjpeg. * dicts with lists in normal order being passed to JpegImagePlugin.convert_dict_qtables, causing them to be unnecessarily "de-zigzagged". --- Tests/test_file_jpeg.py | 11 +++++++++-- src/PIL/JpegImagePlugin.py | 12 +++++++----- src/PIL/JpegPresets.py | 14 +++----------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index ff469d15c31..56b6c793cac 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -446,7 +446,7 @@ def _n_qtables_helper(n, test_file): assert len(im.quantization) == n reloaded = self.roundtrip(im, qtables="keep") assert im.quantization == reloaded.quantization - assert reloaded.quantization[0].typecode == "B" + assert max(reloaded.quantization[0]) <= 255 with Image.open("Tests/images/hopper.jpg") as im: qtables = im.quantization @@ -458,7 +458,8 @@ def _n_qtables_helper(n, test_file): # valid bounds for baseline qtable bounds_qtable = [int(s) for s in ("255 1 " * 32).split(None)] - self.roundtrip(im, qtables=[bounds_qtable]) + im2 = self.roundtrip(im, qtables=[bounds_qtable]) + assert im2.quantization[0] == bounds_qtable # values from wizard.txt in jpeg9-a src package. standard_l_qtable = [ @@ -569,6 +570,12 @@ def test_save_low_quality_baseline_qtables(self): assert max(im2.quantization[0]) <= 255 assert max(im2.quantization[1]) <= 255 + def test_convert_dict_qtables_deprecation(self): + with pytest.warns(DeprecationWarning): + qtable = {0: [1, 2, 3, 4]} + qtable2 = JpegImagePlugin.convert_dict_qtables(qtable) + assert qtable == qtable2 + @pytest.mark.skipif(not djpeg_available(), reason="djpeg not available") def test_load_djpeg(self): with Image.open(TEST_FILE) as img: diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index 29bc61aa8b3..3ff22b0f47e 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -252,7 +252,7 @@ def DQT(self, marker): data = array.array("B" if precision == 1 else "H", s[1:qt_length]) if sys.byteorder == "little" and precision > 1: data.byteswap() # the values are always big-endian - self.quantization[v & 15] = data + self.quantization[v & 15] = [data[i] for i in zigzag_index] s = s[qt_length:] @@ -585,9 +585,10 @@ def _getmp(self): def convert_dict_qtables(qtables): - qtables = [qtables[key] for key in range(len(qtables)) if key in qtables] - for idx, table in enumerate(qtables): - qtables[idx] = [table[i] for i in zigzag_index] + warnings.warn( + "convert_dict_qtables is deprecated and will be removed in a future" + " release. Conversion is no longer needed.", + DeprecationWarning) return qtables @@ -668,7 +669,8 @@ def validate_qtables(qtables): qtables = [lines[s : s + 64] for s in range(0, len(lines), 64)] if isinstance(qtables, (tuple, list, dict)): if isinstance(qtables, dict): - qtables = convert_dict_qtables(qtables) + qtables = [ + qtables[key] for key in range(len(qtables)) if key in qtables] elif isinstance(qtables, tuple): qtables = list(qtables) if not (0 < len(qtables) < 5): diff --git a/src/PIL/JpegPresets.py b/src/PIL/JpegPresets.py index 79d10ebb2c6..e5a5d178a16 100644 --- a/src/PIL/JpegPresets.py +++ b/src/PIL/JpegPresets.py @@ -52,19 +52,11 @@ im.quantization -This will return a dict with a number of arrays. You can pass this dict +This will return a dict with a number of lists. You can pass this dict directly as the qtables argument when saving a JPEG. -The tables format between im.quantization and quantization in presets differ in -3 ways: - -1. The base container of the preset is a list with sublists instead of dict. - dict[0] -> list[0], dict[1] -> list[1], ... -2. Each table in a preset is a list instead of an array. -3. The zigzag order is remove in the preset (needed by libjpeg >= 6a). - -You can convert the dict format to the preset format with the -:func:`.JpegImagePlugin.convert_dict_qtables()` function. +The quantization table format in presets is a list with sublists. These formats +are interchangeable. Libjpeg ref.: https://web.archive.org/web/20120328125543/http://www.jpegcameras.com/libjpeg/libjpeg-3.html From 4dc195333e537515817b40c65b3ad643acda7d1e Mon Sep 17 00:00:00 2001 From: gofr <32750931+gofr@users.noreply.github.com> Date: Sat, 17 Oct 2020 20:45:54 +0200 Subject: [PATCH 012/139] fixup! De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables --- src/PIL/JpegImagePlugin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index 3ff22b0f47e..82b4954d108 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -588,7 +588,8 @@ def convert_dict_qtables(qtables): warnings.warn( "convert_dict_qtables is deprecated and will be removed in a future" " release. Conversion is no longer needed.", - DeprecationWarning) + DeprecationWarning, + ) return qtables @@ -670,7 +671,8 @@ def validate_qtables(qtables): if isinstance(qtables, (tuple, list, dict)): if isinstance(qtables, dict): qtables = [ - qtables[key] for key in range(len(qtables)) if key in qtables] + qtables[key] for key in range(len(qtables)) if key in qtables + ] elif isinstance(qtables, tuple): qtables = list(qtables) if not (0 < len(qtables) < 5): From b214c2d73ed9b72658d5bd283b14129c9db2ca71 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Sun, 1 Nov 2020 14:02:15 +1100 Subject: [PATCH 013/139] Changed wording --- src/PIL/IcnsImagePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index cf9b5dcf5e8..d7aeb53582d 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -6,7 +6,7 @@ # # history: # 2004-10-09 fl Turned into a PIL plugin; removed 2.3 dependencies. -# 2020-04-04 Save in icns format to support all operating systems. +# 2020-04-04 Allow saving on all operating systems. # # Copyright (c) 2004 by Bob Ippolito. # Copyright (c) 2004 by Secret Labs. From 63e8420ef668022c1e259d736d376e68adcfeca8 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Sun, 1 Nov 2020 14:05:52 +1100 Subject: [PATCH 014/139] Removed docstring sentence Co-authored-by: Hugo van Kemenade --- src/PIL/IcnsImagePlugin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index d7aeb53582d..b5de09945ee 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -314,7 +314,6 @@ def _save(im, fp, filename): Saves the image as a series of PNG files, that are then converted to a .icns file - Support for arbitrary systems """ if hasattr(fp, "flush"): fp.flush() From d7245eae23f99f8883f1a7b7f642a080753dfc5e Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Sun, 1 Nov 2020 14:07:31 +1100 Subject: [PATCH 015/139] Capitalisation Co-authored-by: Hugo van Kemenade --- src/PIL/IcnsImagePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index b5de09945ee..481ef3ec313 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -318,7 +318,7 @@ def _save(im, fp, filename): if hasattr(fp, "flush"): fp.flush() - # size + # Size sizes = [128, 256, 512, 32, 64, 256, 512, 1024] size_str = ["ic07", "ic08", "ic09", "ic11", "ic12", "ic13", "ic14", "ic10"] file_size = 0 From 0ff800a52546a65d73db31af86bbd1a0ce87fc3e Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Wed, 30 Dec 2020 12:49:22 +1100 Subject: [PATCH 016/139] Updated docstring Co-authored-by: Hugo van Kemenade --- src/PIL/IcnsImagePlugin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/PIL/IcnsImagePlugin.py b/src/PIL/IcnsImagePlugin.py index 481ef3ec313..abfb4a2f25b 100644 --- a/src/PIL/IcnsImagePlugin.py +++ b/src/PIL/IcnsImagePlugin.py @@ -313,7 +313,6 @@ def _save(im, fp, filename): """ Saves the image as a series of PNG files, that are then converted to a .icns file - """ if hasattr(fp, "flush"): fp.flush() From 800a265f1c11dd910c3f3e827474cf852e99bb3c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 30 Dec 2020 13:09:30 +1100 Subject: [PATCH 017/139] Test ICNS on all operating systems --- Tests/test_file_icns.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/test_file_icns.py b/Tests/test_file_icns.py index e11eb996dd1..eb9448bfeee 100644 --- a/Tests/test_file_icns.py +++ b/Tests/test_file_icns.py @@ -53,7 +53,6 @@ def test_save_append_images(tmp_path): assert_image_equal(reread, provided_im) -@pytest.mark.skipif(sys.platform != "darwin", reason="Requires macOS") def test_save_fp(): fp = io.BytesIO() From 8206f14419873c7186ba7b9028d9d5189bce385b Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 6 Mar 2021 21:44:31 +1100 Subject: [PATCH 018/139] Simplified code --- src/PIL/Image.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 01fe7ed1bae..cc1c23fdb20 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2396,18 +2396,11 @@ def getdata(self): :returns: An :py:class:`~PIL.Image.Image` object. """ - if self.mode == "LA": + if self.mode in ("LA", "RGBA"): return ( - self.convert("La") + self.convert(self.mode.replace("A", "a")) .transform(size, method, data, resample, fill, fillcolor) - .convert("LA") - ) - - if self.mode == "RGBA": - return ( - self.convert("RGBa") - .transform(size, method, data, resample, fill, fillcolor) - .convert("RGBA") + .convert(self.mode) ) if isinstance(method, ImageTransformHandler): From e437a8f9817d993df4b53e675dab24c069acab88 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 7 Mar 2021 13:14:07 +1100 Subject: [PATCH 019/139] Do not edit text of mode strings --- src/PIL/Image.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index cc1c23fdb20..451349d17ef 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -1913,7 +1913,7 @@ def resize(self, size, resample=BICUBIC, box=None, reducing_gap=None): resample = NEAREST if self.mode in ["LA", "RGBA"]: - im = self.convert(self.mode[:-1] + "a") + im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) im = im.resize(size, resample, box) return im.convert(self.mode) @@ -1963,7 +1963,7 @@ def reduce(self, factor, box=None): return self.copy() if self.mode in ["LA", "RGBA"]: - im = self.convert(self.mode[:-1] + "a") + im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) im = im.reduce(factor, box) return im.convert(self.mode) @@ -2398,7 +2398,7 @@ def getdata(self): if self.mode in ("LA", "RGBA"): return ( - self.convert(self.mode.replace("A", "a")) + self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) .transform(size, method, data, resample, fill, fillcolor) .convert(self.mode) ) From 7387ec23ac22558809f67fbaf2dc3076a0fa8939 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 31 Mar 2021 08:40:28 +1100 Subject: [PATCH 020/139] Revert "Removed return value of build_distance_tables" This reverts commit a4a38b805b524f0fdb0d1feca83ca73d3ccfff0b. --- src/libImaging/Quant.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libImaging/Quant.c b/src/libImaging/Quant.c index 8ec99699f06..17b75b4c284 100644 --- a/src/libImaging/Quant.c +++ b/src/libImaging/Quant.c @@ -789,7 +789,7 @@ resort_distance_tables( return 1; } -static void +static int build_distance_tables( uint32_t *avgDist, uint32_t **avgDistSortKey, Pixel *p, uint32_t nEntries) { uint32_t i, j; @@ -811,6 +811,7 @@ build_distance_tables( sizeof(uint32_t *), _sort_ulong_ptr_keys); } + return 1; } static int @@ -1372,7 +1373,9 @@ quantize( goto error_6; } - build_distance_tables(avgDist, avgDistSortKey, p, nPaletteEntries); + if (!build_distance_tables(avgDist, avgDistSortKey, p, nPaletteEntries)) { + goto error_7; + } if (!map_image_pixels_from_median_box( pixelData, nPixels, p, nPaletteEntries, h, avgDist, avgDistSortKey, qp)) { @@ -1577,7 +1580,9 @@ quantize2( goto error_3; } - build_distance_tables(avgDist, avgDistSortKey, p, nQuantPixels); + if (!build_distance_tables(avgDist, avgDistSortKey, p, nQuantPixels)) { + goto error_4; + } if (!map_image_pixels( pixelData, nPixels, p, nQuantPixels, avgDist, avgDistSortKey, qp)) { From 6541bd7cb5e43b78a88b16cb1cd0255db11f07df Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 31 Mar 2021 09:05:19 +1100 Subject: [PATCH 021/139] Added second attribute to avoid unstable nature of qsort --- Tests/images/hopper_resized.gif | Bin 0 -> 5226 bytes Tests/test_image_resize.py | 18 +++++++++++- src/libImaging/Quant.c | 48 +++++++++++++++++++++++++------- 3 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 Tests/images/hopper_resized.gif diff --git a/Tests/images/hopper_resized.gif b/Tests/images/hopper_resized.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7be6c26298faca89ddaf52335d21c1ff934b5ec GIT binary patch literal 5226 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 Yq}k_o*n>XS25Z{4GkSam3distance == *B->distance) { + return A->index < B->index ? -1 : +1; + } + return *A->distance < *B->distance ? -1 : +1; } static int @@ -793,24 +801,42 @@ static int build_distance_tables( uint32_t *avgDist, uint32_t **avgDistSortKey, Pixel *p, uint32_t nEntries) { uint32_t i, j; + DistanceWithIndex *dwi; + dwi = calloc(nEntries * nEntries, sizeof(DistanceWithIndex)); + if (!dwi) { + return 0; + } for (i = 0; i < nEntries; i++) { avgDist[i * nEntries + i] = 0; - avgDistSortKey[i * nEntries + i] = &(avgDist[i * nEntries + i]); + dwi[i * nEntries + i] = (DistanceWithIndex){ + &(avgDist[i * nEntries + i]), + i * nEntries + i + }; for (j = 0; j < i; j++) { avgDist[j * nEntries + i] = avgDist[i * nEntries + j] = _DISTSQR(p + i, p + j); - avgDistSortKey[j * nEntries + i] = &(avgDist[j * nEntries + i]); - avgDistSortKey[i * nEntries + j] = &(avgDist[i * nEntries + j]); + dwi[j * nEntries + i] = (DistanceWithIndex){ + &(avgDist[j * nEntries + i]), + j * nEntries + i + }; + dwi[i * nEntries + j] = (DistanceWithIndex){ + &(avgDist[i * nEntries + j]), + i * nEntries + j + }; } } for (i = 0; i < nEntries; i++) { qsort( - avgDistSortKey + i * nEntries, + dwi + i * nEntries, nEntries, - sizeof(uint32_t *), + sizeof(DistanceWithIndex), _sort_ulong_ptr_keys); + for (j = 0; j < nEntries; j++) { + avgDistSortKey[i * nEntries + j] = dwi[i * nEntries + j].distance; + } } + free(dwi); return 1; } @@ -1176,8 +1202,10 @@ k_means( if (!built) { compute_palette_from_quantized_pixels( pixelData, nPixels, paletteData, nPaletteEntries, avg, count, qp); - build_distance_tables( - avgDist, avgDistSortKey, paletteData, nPaletteEntries); + if (!build_distance_tables( + avgDist, avgDistSortKey, paletteData, nPaletteEntries)) { + goto error_3; + } built = 1; } else { recompute_palette_from_averages(paletteData, nPaletteEntries, avg, count); From 6764650e2a0845466ea6b4aafd5885dcd6a4ea50 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 2 Apr 2021 20:48:06 +1100 Subject: [PATCH 022/139] Reduced memory usage --- src/libImaging/Quant.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/libImaging/Quant.c b/src/libImaging/Quant.c index f159737f188..72762232bcc 100644 --- a/src/libImaging/Quant.c +++ b/src/libImaging/Quant.c @@ -803,37 +803,35 @@ build_distance_tables( uint32_t i, j; DistanceWithIndex *dwi; - dwi = calloc(nEntries * nEntries, sizeof(DistanceWithIndex)); - if (!dwi) { - return 0; - } for (i = 0; i < nEntries; i++) { avgDist[i * nEntries + i] = 0; - dwi[i * nEntries + i] = (DistanceWithIndex){ - &(avgDist[i * nEntries + i]), - i * nEntries + i - }; + avgDistSortKey[i * nEntries + i] = &(avgDist[i * nEntries + i]); for (j = 0; j < i; j++) { avgDist[j * nEntries + i] = avgDist[i * nEntries + j] = _DISTSQR(p + i, p + j); - dwi[j * nEntries + i] = (DistanceWithIndex){ - &(avgDist[j * nEntries + i]), - j * nEntries + i - }; - dwi[i * nEntries + j] = (DistanceWithIndex){ - &(avgDist[i * nEntries + j]), - i * nEntries + j - }; + avgDistSortKey[j * nEntries + i] = &(avgDist[j * nEntries + i]); + avgDistSortKey[i * nEntries + j] = &(avgDist[i * nEntries + j]); } } + + dwi = calloc(nEntries, sizeof(DistanceWithIndex)); + if (!dwi) { + return 0; + } for (i = 0; i < nEntries; i++) { + for (j = 0; j < nEntries; j++) { + dwi[j] = (DistanceWithIndex){ + &(avgDist[i * nEntries + j]), + j + }; + } qsort( - dwi + i * nEntries, + dwi, nEntries, sizeof(DistanceWithIndex), _sort_ulong_ptr_keys); for (j = 0; j < nEntries; j++) { - avgDistSortKey[i * nEntries + j] = dwi[i * nEntries + j].distance; + avgDistSortKey[i * nEntries + j] = dwi[j].distance; } } free(dwi); From a69430047bc1f945677d73b1c888b5e25b052f86 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 2 Apr 2021 21:05:33 +1100 Subject: [PATCH 023/139] Renamed function --- src/libImaging/Quant.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libImaging/Quant.c b/src/libImaging/Quant.c index 72762232bcc..ea226bcf147 100644 --- a/src/libImaging/Quant.c +++ b/src/libImaging/Quant.c @@ -759,7 +759,7 @@ typedef struct { } DistanceWithIndex; static int -_sort_ulong_ptr_keys(const void *a, const void *b) { +_distance_index_cmp(const void *a, const void *b) { DistanceWithIndex *A = (DistanceWithIndex *)a; DistanceWithIndex *B = (DistanceWithIndex *)b; if (*A->distance == *B->distance) { @@ -829,7 +829,7 @@ build_distance_tables( dwi, nEntries, sizeof(DistanceWithIndex), - _sort_ulong_ptr_keys); + _distance_index_cmp); for (j = 0; j < nEntries; j++) { avgDistSortKey[i * nEntries + j] = dwi[j].distance; } From 5491bd5eda3b1c349d96e79248d53cfbe8693372 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 21 Mar 2021 00:33:54 +1100 Subject: [PATCH 024/139] Merge parallel horizontal edges in ImagingDrawPolygon --- src/libImaging/Draw.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/libImaging/Draw.c b/src/libImaging/Draw.c index b6f63b7e804..bec8f258249 100644 --- a/src/libImaging/Draw.c +++ b/src/libImaging/Draw.c @@ -734,7 +734,7 @@ ImagingDrawRectangle( int ImagingDrawPolygon(Imaging im, int count, int *xy, const void *ink_, int fill, int op) { - int i, n; + int i, n, x0, y0, x1, y1; DRAW *draw; INT32 ink; @@ -753,10 +753,28 @@ ImagingDrawPolygon(Imaging im, int count, int *xy, const void *ink_, int fill, i return -1; } for (i = n = 0; i < count - 1; i++) { - add_edge(&e[n++], xy[i + i], xy[i + i + 1], xy[i + i + 2], xy[i + i + 3]); + x0 = xy[i * 2]; + y0 = xy[i * 2 + 1]; + x1 = xy[i * 2 + 2]; + y1 = xy[i * 2 + 3]; + if (y0 == y1 && i != 0 && y0 == xy[i * 2 - 1]) { + // This is a horizontal line, + // that immediately follows another horizontal line + Edge *last_e = &e[n-1]; + if (x1 > x0 && x0 > xy[i * 2 - 2]) { + // They are both increasing in x + last_e->xmax = x1; + continue; + } else if (x1 < x0 && x0 < xy[i * 2 - 2]) { + // They are both decreasing in x + last_e->xmin = x1; + continue; + } + } + add_edge(&e[n++], x0, y0, x1, y1); } - if (xy[i + i] != xy[0] || xy[i + i + 1] != xy[1]) { - add_edge(&e[n++], xy[i + i], xy[i + i + 1], xy[0], xy[1]); + if (xy[i * 2] != xy[0] || xy[i * 2 + 1] != xy[1]) { + add_edge(&e[n++], xy[i * 2], xy[i * 2 + 1], xy[0], xy[1]); } draw->polygon(im, n, e, ink, 0); free(e); @@ -764,9 +782,9 @@ ImagingDrawPolygon(Imaging im, int count, int *xy, const void *ink_, int fill, i } else { /* Outline */ for (i = 0; i < count - 1; i++) { - draw->line(im, xy[i + i], xy[i + i + 1], xy[i + i + 2], xy[i + i + 3], ink); + draw->line(im, xy[i * 2], xy[i * 2 + 1], xy[i * 2 + 2], xy[i * 2 + 3], ink); } - draw->line(im, xy[i + i], xy[i + i + 1], xy[0], xy[1], ink); + draw->line(im, xy[i * 2], xy[i * 2 + 1], xy[0], xy[1], ink); } return 0; From 824d2fa4f3fb20523768b650c2a305524c1af9aa Mon Sep 17 00:00:00 2001 From: Tsung-Po Sun Date: Sun, 31 Jan 2021 14:38:46 +0900 Subject: [PATCH 025/139] Add test --- .../continuous_horizontal_edges_polygon.png | Bin 0 -> 108 bytes Tests/test_imagedraw.py | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 Tests/images/imagedraw/continuous_horizontal_edges_polygon.png diff --git a/Tests/images/imagedraw/continuous_horizontal_edges_polygon.png b/Tests/images/imagedraw/continuous_horizontal_edges_polygon.png new file mode 100644 index 0000000000000000000000000000000000000000..beffed5b918594f7952682238515cbd831a29b96 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|#-1*YAr*6yZ*0%M|NsC0PIXC- zpuPF`?b;qDGczkT?70w literal 0 HcmV?d00001 diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 7f31e1aaf46..da17c6fa067 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1349,3 +1349,14 @@ def test_compute_regular_polygon_vertices_input_error_handling( with pytest.raises(expected_error) as e: ImageDraw._compute_regular_polygon_vertices(bounding_circle, n_sides, rotation) assert str(e.value) == error_message + +def test_continuous_horizontal_edges_polygon(): + with Image.open( + os.path.join(IMAGES_PATH, "continuous_horizontal_edges_polygon.png") + ) as expected: + expected.load() + xy = [(2, 6), (12, 6), (12, 12), (8, 12), (8, 9), (8, 8), (5, 8), (4, 8), (3, 8), (2, 8), (2, 7)] + img, draw = create_base_image_draw((16, 16)) + draw.polygon(xy, BLACK) + assert_image_equal(img, expected, "continuous horizontal edges polygon failed") + \ No newline at end of file From 324d934128e72502f53587e1fa550ade969cafad Mon Sep 17 00:00:00 2001 From: Tsung-Po Sun Date: Sun, 31 Jan 2021 14:39:57 +0900 Subject: [PATCH 026/139] Remove spaces --- Tests/test_imagedraw.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index da17c6fa067..146ac7dc91c 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1359,4 +1359,3 @@ def test_continuous_horizontal_edges_polygon(): img, draw = create_base_image_draw((16, 16)) draw.polygon(xy, BLACK) assert_image_equal(img, expected, "continuous horizontal edges polygon failed") - \ No newline at end of file From df0273e0244cdd62c71af51dd5a2b60c261969af Mon Sep 17 00:00:00 2001 From: Tsung-Po Sun Date: Sun, 31 Jan 2021 15:21:38 +0900 Subject: [PATCH 027/139] Reformat --- Tests/test_imagedraw.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 146ac7dc91c..b5ac94e249d 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1355,7 +1355,19 @@ def test_continuous_horizontal_edges_polygon(): os.path.join(IMAGES_PATH, "continuous_horizontal_edges_polygon.png") ) as expected: expected.load() - xy = [(2, 6), (12, 6), (12, 12), (8, 12), (8, 9), (8, 8), (5, 8), (4, 8), (3, 8), (2, 8), (2, 7)] + xy = [ + (2, 6), + (12, 6), + (12, 12), + (8, 12), + (8, 9), + (8, 8), + (5, 8), + (4, 8), + (3, 8), + (2, 8), + (2, 7) + ] img, draw = create_base_image_draw((16, 16)) draw.polygon(xy, BLACK) assert_image_equal(img, expected, "continuous horizontal edges polygon failed") From 87e7e88591de84ce8b633173c5c886c32daa154e Mon Sep 17 00:00:00 2001 From: Tsung-Po Sun Date: Sun, 31 Jan 2021 15:44:14 +0900 Subject: [PATCH 028/139] fix lint --- Tests/test_imagedraw.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index b5ac94e249d..5718e44655a 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1350,6 +1350,7 @@ def test_compute_regular_polygon_vertices_input_error_handling( ImageDraw._compute_regular_polygon_vertices(bounding_circle, n_sides, rotation) assert str(e.value) == error_message + def test_continuous_horizontal_edges_polygon(): with Image.open( os.path.join(IMAGES_PATH, "continuous_horizontal_edges_polygon.png") @@ -1366,7 +1367,7 @@ def test_continuous_horizontal_edges_polygon(): (4, 8), (3, 8), (2, 8), - (2, 7) + (2, 7), ] img, draw = create_base_image_draw((16, 16)) draw.polygon(xy, BLACK) From 9a4b1301dee92d18ff89318793d89c3e945000e8 Mon Sep 17 00:00:00 2001 From: Tsung-Po Sun Date: Wed, 10 Feb 2021 00:04:28 +0900 Subject: [PATCH 029/139] Modify test code --- Tests/test_imagedraw.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 5718e44655a..0faf304a880 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1361,13 +1361,9 @@ def test_continuous_horizontal_edges_polygon(): (12, 6), (12, 12), (8, 12), - (8, 9), (8, 8), - (5, 8), (4, 8), - (3, 8), (2, 8), - (2, 7), ] img, draw = create_base_image_draw((16, 16)) draw.polygon(xy, BLACK) From 006de79d60ad3a1d9f874a08726204ff5f013146 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 20 Mar 2021 22:42:10 +1100 Subject: [PATCH 030/139] Use assert_image_equal_tofile --- Tests/test_imagedraw.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 0faf304a880..8d6195b2782 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1352,19 +1352,18 @@ def test_compute_regular_polygon_vertices_input_error_handling( def test_continuous_horizontal_edges_polygon(): - with Image.open( - os.path.join(IMAGES_PATH, "continuous_horizontal_edges_polygon.png") - ) as expected: - expected.load() - xy = [ - (2, 6), - (12, 6), - (12, 12), - (8, 12), - (8, 8), - (4, 8), - (2, 8), - ] - img, draw = create_base_image_draw((16, 16)) - draw.polygon(xy, BLACK) - assert_image_equal(img, expected, "continuous horizontal edges polygon failed") + xy = [ + (2, 6), + (12, 6), + (12, 12), + (8, 12), + (8, 8), + (4, 8), + (2, 8), + ] + img, draw = create_base_image_draw((16, 16)) + draw.polygon(xy, BLACK) + expected = os.path.join(IMAGES_PATH, "continuous_horizontal_edges_polygon.png") + assert_image_equal_tofile( + img, expected, "continuous horizontal edges polygon failed" + ) From a3dbee9f0812b19236e776eaccf9fe13fb148a73 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 21 Mar 2021 01:25:17 +1100 Subject: [PATCH 031/139] Cover horizontal lines both increasing in x --- Tests/test_imagedraw.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 8d6195b2782..fa1fdddf1b5 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1354,6 +1354,7 @@ def test_compute_regular_polygon_vertices_input_error_handling( def test_continuous_horizontal_edges_polygon(): xy = [ (2, 6), + (6, 6), (12, 6), (12, 12), (8, 12), From 4dde8109d7927bfe674a406bd397e40d67ab464b Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 14 Apr 2021 22:48:27 +1000 Subject: [PATCH 032/139] Resolved FIXME by reading mandatory FITS header items --- Tests/images/hopper_naxis_zero.fits | Bin 0 -> 54720 bytes Tests/test_file_fitsstub.py | 23 ++++++++++++--- src/PIL/FitsStubImagePlugin.py | 44 +++++++++++++++++++++------- 3 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 Tests/images/hopper_naxis_zero.fits diff --git a/Tests/images/hopper_naxis_zero.fits b/Tests/images/hopper_naxis_zero.fits new file mode 100644 index 0000000000000000000000000000000000000000..580cf3a2c003c6c4998e7c8ac4a1e85926fb6b33 GIT binary patch literal 54720 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_fitsstub.py b/Tests/test_file_fitsstub.py index 6dc7c4602f5..c77457947ef 100644 --- a/Tests/test_file_fitsstub.py +++ b/Tests/test_file_fitsstub.py @@ -1,3 +1,5 @@ +from io import BytesIO + import pytest from PIL import FitsStubImagePlugin, Image @@ -11,10 +13,8 @@ def test_open(): # Assert assert im.format == "FITS" - - # Dummy data from the stub - assert im.mode == "F" - assert im.size == (1, 1) + assert im.size == (128, 128) + assert im.mode == "L" def test_invalid_file(): @@ -35,6 +35,21 @@ def test_load(): im.load() +def test_truncated_fits(): + # No END to headers + image_data = b"SIMPLE = T" + b" " * 50 + b"TRUNCATE" + with pytest.raises(OSError): + FitsStubImagePlugin.FITSStubImageFile(BytesIO(image_data)) + + +def test_naxis_zero(): + # This test image has been manually hexedited + # to set the number of data axes to zero + with pytest.raises(ValueError): + with Image.open("Tests/images/hopper_naxis_zero.fits"): + pass + + def test_save(): # Arrange with Image.open(TEST_FILE) as im: diff --git a/src/PIL/FitsStubImagePlugin.py b/src/PIL/FitsStubImagePlugin.py index c2ce8651c8a..a3a94cf4b21 100644 --- a/src/PIL/FitsStubImagePlugin.py +++ b/src/PIL/FitsStubImagePlugin.py @@ -38,21 +38,45 @@ class FITSStubImageFile(ImageFile.StubImageFile): format_description = "FITS" def _open(self): - offset = self.fp.tell() - if not _accept(self.fp.read(6)): - raise SyntaxError("Not a FITS file") - - # FIXME: add more sanity checks here; mandatory header items - # include SIMPLE, BITPIX, NAXIS, etc. + headers = {} + while True: + header = self.fp.read(80) + if not header: + raise OSError("Truncated FITS file") + keyword = header[:8].strip() + if keyword == b"END": + break + value = header[8:].strip() + if value.startswith(b"="): + value = value[1:].strip() + if not headers and (not _accept(keyword) or value != b"T"): + raise SyntaxError("Not a FITS file") + headers[keyword] = value + + naxis = int(headers[b"NAXIS"]) + if naxis == 0: + raise ValueError("No image data") + elif naxis == 1: + self._size = 1, int(headers[b"NAXIS1"]) + else: + self._size = int(headers[b"NAXIS1"]), int(headers[b"NAXIS2"]) + + number_of_bits = int(headers[b"BITPIX"]) + if number_of_bits == 8: + self.mode = "L" + elif number_of_bits == 16: + self.mode = "I" + # rawmode = "I;16S" + elif number_of_bits == 32: + self.mode = "I" + elif number_of_bits in (-32, -64): + self.mode = "F" + # rawmode = "F" if number_of_bits == -32 else "F;64F" self.fp.seek(offset) - # make something up - self.mode = "F" - self._size = 1, 1 - loader = self._load() if loader: loader.open(self) From 622ba122cef01cc33abd58010fe7abe1e0e4175c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 19 Apr 2021 19:46:49 +1000 Subject: [PATCH 033/139] Added Exif load_from_fp method to get TIFF tag_v2 data --- Tests/test_file_tiff.py | 44 +++++++++++++++++++++++++++++++++++ Tests/test_image.py | 21 +++++++++++++++++ src/PIL/Image.py | 51 ++++++++++++++++++++++++++++++++--------- 3 files changed, 105 insertions(+), 11 deletions(-) diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index c24438c4851..eef2d0578d9 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -389,6 +389,50 @@ def test_ifd_tag_type(self): with Image.open("Tests/images/ifd_tag_type.tiff") as im: assert 0x8825 in im.tag_v2 + def test_exif(self): + with Image.open("Tests/images/ifd_tag_type.tiff") as im: + exif = im.getexif() + + assert sorted(exif.keys()) == [ + 256, + 257, + 258, + 259, + 262, + 271, + 272, + 273, + 277, + 278, + 279, + 282, + 283, + 284, + 296, + 297, + 305, + 339, + 700, + 34665, + 34853, + 50735, + ] + assert exif[256] == 640 + assert exif[271] == "FLIR" + + gps = exif.get_ifd(0x8825) + assert list(gps.keys()) == [0, 1, 2, 3, 4, 5, 6, 18] + assert gps[0] == b"\x03\x02\x00\x00" + assert gps[18] == "WGS-84" + + def test_exif_frames(self): + # Test that EXIF data can change across frames + with Image.open("Tests/images/g4-multi.tiff") as im: + assert im.getexif()[273] == (328, 815) + + im.seek(1) + assert im.getexif()[273] == (1408, 1907) + def test_seek(self): filename = "Tests/images/pil136.tiff" with Image.open(filename) as im: diff --git a/Tests/test_image.py b/Tests/test_image.py index 82efefc1e6c..b6e5873f465 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -773,6 +773,27 @@ def test_exif_ifd(self): reloaded_exif.load(exif.tobytes()) assert reloaded_exif.get_ifd(0x8769) == exif.get_ifd(0x8769) + def test_exif_load_from_fp(self): + with Image.open("Tests/images/flower.jpg") as im: + data = im.info["exif"] + if data.startswith(b"Exif\x00\x00"): + data = data[6:] + fp = io.BytesIO(data) + + exif = Image.Exif() + exif.load_from_fp(fp) + assert exif == { + 271: "Canon", + 272: "Canon PowerShot S40", + 274: 1, + 282: 180.0, + 283: 180.0, + 296: 2, + 306: "2003:12:14 12:01:44", + 531: 1, + 34665: 196, + } + @pytest.mark.skipif( sys.version_info < (3, 7), reason="Python 3.7 or greater required" ) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 6529db2bee9..c9153a4d283 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -1317,11 +1317,16 @@ def getexif(self): self._exif = Exif() exif_info = self.info.get("exif") - if exif_info is None and "Raw profile type exif" in self.info: - exif_info = bytes.fromhex( - "".join(self.info["Raw profile type exif"].split("\n")[3:]) - ) - self._exif.load(exif_info) + if exif_info is None: + if "Raw profile type exif" in self.info: + exif_info = bytes.fromhex( + "".join(self.info["Raw profile type exif"].split("\n")[3:]) + ) + elif hasattr(self, "tag_v2"): + self._exif.endian = self.tag_v2._endian + self._exif.load_from_fp(self.fp, self.tag_v2._offset) + if exif_info is not None: + self._exif.load(exif_info) # XMP tags if 0x0112 not in self._exif: @@ -3297,7 +3302,7 @@ def _apply_env_variables(env=None): class Exif(MutableMapping): - endian = "<" + endian = None def __init__(self): self._data = {} @@ -3332,6 +3337,12 @@ def _get_ifd_dict(self, offset): info.load(self.fp) return self._fixup_dict(info) + def _get_head(self): + if self.endian == "<": + return b"II\x2A\x00\x08\x00\x00\x00" + else: + return b"MM\x00\x2A\x00\x00\x00\x08" + def load(self, data): # Extract EXIF information. This is highly experimental, # and is likely to be replaced with something better in a future @@ -3344,8 +3355,8 @@ def load(self, data): self._loaded_exif = data self._data.clear() self._ifds.clear() - self._info = None if not data: + self._info = None return if data.startswith(b"Exif\x00\x00"): @@ -3360,6 +3371,27 @@ def load(self, data): self.fp.seek(self._info.next) self._info.load(self.fp) + def load_from_fp(self, fp, offset=None): + self._loaded_exif = None + self._data.clear() + self._ifds.clear() + + # process dictionary + from . import TiffImagePlugin + + self.fp = fp + if offset is not None: + self.head = self._get_head() + else: + self.head = self.fp.read(8) + self._info = TiffImagePlugin.ImageFileDirectory_v2(self.head) + if self.endian is None: + self.endian = self._info._endian + if offset is None: + offset = self._info.next + self.fp.seek(offset) + self._info.load(self.fp) + def _get_merged_dict(self): merged_dict = dict(self) @@ -3378,10 +3410,7 @@ def _get_merged_dict(self): def tobytes(self, offset=8): from . import TiffImagePlugin - if self.endian == "<": - head = b"II\x2A\x00\x08\x00\x00\x00" - else: - head = b"MM\x00\x2A\x00\x00\x00\x08" + head = self._get_head() ifd = TiffImagePlugin.ImageFileDirectory_v2(ifh=head) for tag, value in self.items(): if tag in [0x8769, 0x8225, 0x8825] and not isinstance(value, dict): From 9ac888262ae651166e65f0fe1936892b671606dd Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 8 May 2021 00:25:47 +1000 Subject: [PATCH 034/139] Do not allow TIFF to seek to a past frame --- Tests/images/multipage_multiple_frame_loop.tiff | Bin 0 -> 816 bytes Tests/images/multipage_out_of_order.tiff | Bin 0 -> 816 bytes Tests/images/multipage_single_frame_loop.tiff | Bin 0 -> 816 bytes Tests/test_file_tiff.py | 13 +++++++++++++ src/PIL/TiffImagePlugin.py | 7 ++++++- 5 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Tests/images/multipage_multiple_frame_loop.tiff create mode 100644 Tests/images/multipage_out_of_order.tiff create mode 100644 Tests/images/multipage_single_frame_loop.tiff diff --git a/Tests/images/multipage_multiple_frame_loop.tiff b/Tests/images/multipage_multiple_frame_loop.tiff new file mode 100644 index 0000000000000000000000000000000000000000..b6759b08023f766caa9c66355849d9dd2ebfd610 GIT binary patch literal 816 zcmb_ayAHxI40IAes1sB?q|%WEHg*Qq{s21zNGuF2to>EHsS{tF54+R$xW7oIuEixkf8vkBzvhqL zz#llp-#~@HA2oqL*DEhTG4?J0rqS?^uGNX(&d&+skLCoA`A(-R2GP&S8vFY>$uMwU aryMw?lO-2)Dp2Efn)9%#rFHUI*6Rg47$3&~ literal 0 HcmV?d00001 diff --git a/Tests/images/multipage_out_of_order.tiff b/Tests/images/multipage_out_of_order.tiff new file mode 100644 index 0000000000000000000000000000000000000000..1576a549b58ae83da286c7481c1b8f7f797ad4fd GIT binary patch literal 816 zcmb`FEf2yl5QgtsSjZGCd?aHM0}hWsVD<;_2uLsp40gYVpM^xCNygi**Httjd^G9q zY45J<_qOb9>+{h#3Vuc1-xy#KjL0pL5sd z-oR7GcW@Ep&cO3**iY4T4O(fePV8!0DBge)|ThP?zBDbFJ^5~=Cmp)0+ daH3NNj_IUGd!2H`h)y#b-zX5*sqqmRyy?5o=-`rdS+cWwD&;04Ek}*QM}`FGAIf?N3nvwqX*3L`q7tnhv3 ilN5$?I%U8yofK)WQ;r&^(@e~2L-djO)Tzl4iC!;pIUn!< literal 0 HcmV?d00001 diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index c24438c4851..dd312d6df6a 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -301,6 +301,19 @@ def test_multipage_last_frame(self): assert im.size == (20, 20) assert im.convert("RGB").getpixel((0, 0)) == (0, 0, 255) + def test_frame_order(self): + # A frame can't progress to itself after reading + with Image.open("Tests/images/multipage_single_frame_loop.tiff") as im: + assert im.n_frames == 1 + + # A frame can't progress to a frame that has already been read + with Image.open("Tests/images/multipage_multiple_frame_loop.tiff") as im: + assert im.n_frames == 2 + + # Frames don't have to be in sequence + with Image.open("Tests/images/multipage_out_of_order.tiff") as im: + assert im.n_frames == 3 + def test___str__(self): filename = "Tests/images/pil136.tiff" with Image.open(filename) as im: diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index 5d046761a6a..dd5004edd22 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -1067,7 +1067,12 @@ def _seek(self, frame): self._frame_pos.append(self.__next) logger.debug("Loading tags, location: %s" % self.fp.tell()) self.tag_v2.load(self.fp) - self.__next = self.tag_v2.next + if self.tag_v2.next in self._frame_pos: + # This IFD has already been processed + # Declare this to be the end of the image + self.__next = 0 + else: + self.__next = self.tag_v2.next if self.__next == 0: self._n_frames = frame + 1 if len(self._frame_pos) == 1: From c04260b3f523871339f46969a46964f929d89708 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 17 Apr 2021 15:39:42 +1000 Subject: [PATCH 035/139] Convert to float for comparison with float in IFDRational __eq__ --- Tests/test_tiff_ifdrational.py | 2 ++ src/PIL/TiffImagePlugin.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Tests/test_tiff_ifdrational.py b/Tests/test_tiff_ifdrational.py index 1697a8d4946..12f475df036 100644 --- a/Tests/test_tiff_ifdrational.py +++ b/Tests/test_tiff_ifdrational.py @@ -28,6 +28,8 @@ def test_sanity(): _test_equal(1, 2, Fraction(1, 2)) _test_equal(1, 2, IFDRational(1, 2)) + _test_equal(7, 5, 1.4) + def test_ranges(): for num in range(1, 10): diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index 0e779248fb7..66d6f71e6bb 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -354,9 +354,12 @@ def __hash__(self): return self._val.__hash__() def __eq__(self, other): + val = self._val if isinstance(other, IFDRational): other = other._val - return self._val == other + if isinstance(other, float): + val = float(val) + return val == other def __getstate__(self): return [self._val, self._numerator, self._denominator] From 7bfaffd5fadda4b1e1e3599db1832d161c133d6a Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 10 May 2021 09:36:57 +1000 Subject: [PATCH 036/139] Simplified tests now that casting to float is not needed --- Tests/test_file_tiff.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 91506f98017..682dc8fd9ac 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -146,25 +146,24 @@ def test_load_float_dpi(self, resolutionUnit, dpi): "Tests/images/hopper_float_dpi_" + str(resolutionUnit) + ".tif" ) as im: assert im.tag_v2.get(RESOLUTION_UNIT) == resolutionUnit - for reloaded_dpi in im.info["dpi"]: - assert float(reloaded_dpi) == dpi + assert im.info["dpi"] == (dpi, dpi) def test_save_float_dpi(self, tmp_path): outfile = str(tmp_path / "temp.tif") with Image.open("Tests/images/hopper.tif") as im: - im.save(outfile, dpi=(72.2, 72.2)) + dpi = (72.2, 72.2) + im.save(outfile, dpi=dpi) with Image.open(outfile) as reloaded: - for dpi in reloaded.info["dpi"]: - assert float(dpi) == 72.2 + assert reloaded.info["dpi"] == dpi def test_save_setting_missing_resolution(self): b = BytesIO() with Image.open("Tests/images/10ct_32bit_128.tiff") as im: im.save(b, format="tiff", resolution=123.45) with Image.open(b) as im: - assert float(im.tag_v2[X_RESOLUTION]) == 123.45 - assert float(im.tag_v2[Y_RESOLUTION]) == 123.45 + assert im.tag_v2[X_RESOLUTION] == 123.45 + assert im.tag_v2[Y_RESOLUTION] == 123.45 def test_invalid_file(self): invalid_file = "Tests/images/flower.jpg" From bf97a92bc62bfba894e1f2a641c2bbd885f0f75e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 14 May 2021 13:18:49 +1000 Subject: [PATCH 037/139] Ensure PNG seeks to end of previous chunk at start of load_end --- Tests/images/padded_idat.png | Bin 0 -> 104 bytes Tests/test_file_png.py | 17 +++++++++++++++++ src/PIL/PngImagePlugin.py | 2 ++ 3 files changed, 19 insertions(+) create mode 100644 Tests/images/padded_idat.png diff --git a/Tests/images/padded_idat.png b/Tests/images/padded_idat.png new file mode 100644 index 0000000000000000000000000000000000000000..18c5a4990cdcaf8b31f71ee20f88c85d291de263 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5xHv#$-PijWKuX`!#WAE}&f5!)f(#5i%^S-8 rx%#v93$e=hZjU`?*}%5|8QZ?gVHD1NmlhaZ1Tw Date: Mon, 17 May 2021 18:57:23 +1000 Subject: [PATCH 038/139] Added BC5_UNORM reading --- Tests/images/bc5_unorm.dds | Bin 0 -> 87556 bytes Tests/images/bc5_unorm.png | Bin 0 -> 96570 bytes Tests/test_file_dds.py | 14 ++++++++++++++ src/PIL/DdsImagePlugin.py | 7 ++++++- src/decode.c | 4 +++- 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 Tests/images/bc5_unorm.dds create mode 100644 Tests/images/bc5_unorm.png diff --git a/Tests/images/bc5_unorm.dds b/Tests/images/bc5_unorm.dds new file mode 100644 index 0000000000000000000000000000000000000000..a04a026eb1f666bd85e1053e4bbe8d9a115930a3 GIT binary patch literal 87556 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

01cA=6DfHO`|OfTigX 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 literal 0 HcmV?d00001 diff --git a/Tests/images/bc5_unorm.png b/Tests/images/bc5_unorm.png new file mode 100644 index 0000000000000000000000000000000000000000..05279ddfbe65e0b91d7ce07306db92133f9e638b GIT binary patch literal 96570 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

)5j8}0f6+sI@6 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 Date: Tue, 18 May 2021 17:43:50 +1000 Subject: [PATCH 039/139] Added BC5_SNORM reading --- Tests/images/bc5_snorm.dds | Bin 0 -> 87536 bytes Tests/images/bc5_snorm.png | Bin 0 -> 83763 bytes Tests/test_file_dds.py | 22 +++++++++-- src/PIL/DdsImagePlugin.py | 8 +++- src/decode.c | 11 +++--- src/libImaging/Bcn.h | 3 ++ src/libImaging/BcnDecode.c | 77 +++++++++++++++++++++++-------------- 7 files changed, 83 insertions(+), 38 deletions(-) create mode 100644 Tests/images/bc5_snorm.dds create mode 100644 Tests/images/bc5_snorm.png create mode 100644 src/libImaging/Bcn.h diff --git a/Tests/images/bc5_snorm.dds b/Tests/images/bc5_snorm.dds new file mode 100644 index 0000000000000000000000000000000000000000..0b999eed32005a4095bd23316396a594b02fd572 GIT binary patch literal 87536 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