mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-03-14 15:22:13 +03:00
Merge c68044bf7f
into dcb6eef590
This commit is contained in:
commit
8759a39f3a
|
@ -561,11 +561,11 @@ def _save(im, fp, filename):
|
||||||
# is a value that's been used in a django patch.
|
# is a value that's been used in a django patch.
|
||||||
# https://github.com/jdriscoll/django-imagekit/issues/50
|
# https://github.com/jdriscoll/django-imagekit/issues/50
|
||||||
bufsize=0
|
bufsize=0
|
||||||
if "optimize" in info:
|
if "optimize" in info or "progressive" in info or "progression" in info:
|
||||||
bufsize = im.size[0]*im.size[1]
|
bufsize = im.size[0]*im.size[1]
|
||||||
|
|
||||||
# The exif info needs to be written as one block, + APP1, + one spare byte.
|
# The exif info needs to be written as one block, + APP1, + one spare byte.
|
||||||
# Ensure that our buffer is big enough
|
# Ensure that our buffer is big enough
|
||||||
bufsize = max(ImageFile.MAXBLOCK, bufsize, len(info.get("exif",b"")) + 5 )
|
bufsize = max(ImageFile.MAXBLOCK, bufsize, len(info.get("exif",b"")) + 5 )
|
||||||
|
|
||||||
ImageFile._save(im, fp, [("jpeg", (0,0)+im.size, 0, rawmode)], bufsize)
|
ImageFile._save(im, fp, [("jpeg", (0,0)+im.size, 0, rawmode)], bufsize)
|
||||||
|
|
|
@ -114,17 +114,29 @@ def test_optimize():
|
||||||
assert_true(im1.bytes >= im2.bytes)
|
assert_true(im1.bytes >= im2.bytes)
|
||||||
|
|
||||||
def test_optimize_large_buffer():
|
def test_optimize_large_buffer():
|
||||||
#https://github.com/python-imaging/Pillow/issues/148
|
#https://github.com/python-imaging/Pillow/issues/148
|
||||||
f = tempfile('temp.jpg')
|
f = tempfile('temp.jpg')
|
||||||
# this requires ~ 1.5x Image.MAXBLOCK
|
# this requires ~ 1.5x Image.MAXBLOCK
|
||||||
im = Image.new("RGB", (4096,4096), 0xff3333)
|
im = Image.new("RGB", (4096,4096), 0xff3333)
|
||||||
im.save(f, format="JPEG", optimize=True)
|
im.save(f, format="JPEG", optimize=True)
|
||||||
|
|
||||||
|
def test_progressive():
|
||||||
|
im1 = roundtrip(lena())
|
||||||
|
im2 = roundtrip(lena(), progressive=True)
|
||||||
|
assert_image_equal(im1, im2)
|
||||||
|
assert_true(im1.bytes >= im2.bytes)
|
||||||
|
|
||||||
|
def test_progressive_large_buffer():
|
||||||
|
f = tempfile('temp.jpg')
|
||||||
|
# this requires ~ 1.5x Image.MAXBLOCK
|
||||||
|
im = Image.new("RGB", (4096,4096), 0xff3333)
|
||||||
|
im.save(f, format="JPEG", progressive=True)
|
||||||
|
|
||||||
def test_large_exif():
|
def test_large_exif():
|
||||||
#https://github.com/python-imaging/Pillow/issues/148
|
#https://github.com/python-imaging/Pillow/issues/148
|
||||||
f = tempfile('temp.jpg')
|
f = tempfile('temp.jpg')
|
||||||
im = lena()
|
im = lena()
|
||||||
im.save(f,'JPEG', quality=90, exif=b"1"*65532)
|
im.save(f,'JPEG', quality=90, exif=b"1"*65532)
|
||||||
|
|
||||||
def test_progressive():
|
def test_progressive():
|
||||||
im1 = roundtrip(lena())
|
im1 = roundtrip(lena())
|
||||||
|
|
Loading…
Reference in New Issue
Block a user