mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-03-23 19:44:13 +03:00
Merge pull request #4741 from radarhere/icns
This commit is contained in:
commit
74a4c88a12
|
@ -55,6 +55,19 @@ def test_save_append_images(tmp_path):
|
||||||
assert_image_equal(reread, provided_im)
|
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():
|
def test_sizes():
|
||||||
# Check that we can load all of the sizes, and that the final pixel
|
# Check that we can load all of the sizes, and that the final pixel
|
||||||
# dimensions are as expected
|
# dimensions are as expected
|
||||||
|
|
|
@ -337,6 +337,10 @@ def _save(im, fp, filename):
|
||||||
|
|
||||||
# iconutil -c icns -o {} {}
|
# 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_cmd = ["iconutil", "-c", "icns", "-o", filename, iconset]
|
||||||
convert_proc = subprocess.Popen(
|
convert_proc = subprocess.Popen(
|
||||||
convert_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL
|
convert_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL
|
||||||
|
@ -349,6 +353,10 @@ def _save(im, fp, filename):
|
||||||
if retcode:
|
if retcode:
|
||||||
raise subprocess.CalledProcessError(retcode, convert_cmd)
|
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_open(IcnsImageFile.format, IcnsImageFile, lambda x: x[:4] == b"icns")
|
||||||
Image.register_extension(IcnsImageFile.format, ".icns")
|
Image.register_extension(IcnsImageFile.format, ".icns")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user