Skip to content
Snippets Groups Projects
Commit 8bec1f7034cd authored by Andrew Murray's avatar Andrew Murray
Browse files

Fixed ICNS file pointer saving

parent 73de978a864b
No related branches found
No related tags found
No related merge requests found
......@@ -55,6 +55,19 @@
assert_image_equal(reread, provided_im)
@pytest.mark.skipif(sys.platform != "darwin", reason="Requires macOS")
def test_save_fp():
fp = io.BytesIO()
with Image.open(TEST_FILE) as im:
im.save(fp, format="ICNS")
with Image.open(fp) as reread:
assert reread.mode == "RGBA"
assert reread.size == (1024, 1024)
assert reread.format == "ICNS"
def test_sizes():
# Check that we can load all of the sizes, and that the final pixel
# dimensions are as expected
......
......@@ -337,6 +337,10 @@
# iconutil -c icns -o {} {}
fp_only = not filename
if fp_only:
f, filename = tempfile.mkstemp(".icns")
os.close(f)
convert_cmd = ["iconutil", "-c", "icns", "-o", filename, iconset]
convert_proc = subprocess.Popen(
convert_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL
......@@ -349,6 +353,10 @@
if retcode:
raise subprocess.CalledProcessError(retcode, convert_cmd)
if fp_only:
with open(filename, "rb") as f:
fp.write(f.read())
Image.register_open(IcnsImageFile.format, IcnsImageFile, lambda x: x[:4] == b"icns")
Image.register_extension(IcnsImageFile.format, ".icns")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment