mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-08-18 03:04:45 +03:00
Simplified code
This commit is contained in:
parent
9ff5cab8b1
commit
c02b25720c
|
@ -302,7 +302,7 @@ except ImportError:
|
||||||
RAWMODE = {
|
RAWMODE = {
|
||||||
"1": "L",
|
"1": "L",
|
||||||
"L": "L",
|
"L": "L",
|
||||||
"P": "P",
|
"P": "P"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -325,7 +325,6 @@ def _save_all(im, fp, filename):
|
||||||
|
|
||||||
|
|
||||||
def _save(im, fp, filename, save_all=False):
|
def _save(im, fp, filename, save_all=False):
|
||||||
|
|
||||||
im.encoderinfo.update(im.info)
|
im.encoderinfo.update(im.info)
|
||||||
if _imaging_gif:
|
if _imaging_gif:
|
||||||
# call external driver
|
# call external driver
|
||||||
|
@ -370,7 +369,7 @@ def _save(im, fp, filename, save_all=False):
|
||||||
# delta frame
|
# delta frame
|
||||||
previous = im_frames[-1]
|
previous = im_frames[-1]
|
||||||
delta = ImageChops.subtract_modulo(im_frame,
|
delta = ImageChops.subtract_modulo(im_frame,
|
||||||
previous['im_frame'])
|
previous['im'])
|
||||||
bbox = delta.getbbox()
|
bbox = delta.getbbox()
|
||||||
if not bbox:
|
if not bbox:
|
||||||
# This frame is identical to the previous frame
|
# This frame is identical to the previous frame
|
||||||
|
@ -380,37 +379,36 @@ def _save(im, fp, filename, save_all=False):
|
||||||
else:
|
else:
|
||||||
bbox = None
|
bbox = None
|
||||||
im_frames.append({
|
im_frames.append({
|
||||||
"im_frame":im_frame,
|
'im':im_frame,
|
||||||
"bbox":bbox,
|
'bbox':bbox,
|
||||||
"encoderinfo":encoderinfo
|
'encoderinfo':encoderinfo
|
||||||
})
|
})
|
||||||
if len(im_frames) < 2:
|
if len(im_frames) < 2:
|
||||||
save_all = False
|
save_all = False
|
||||||
else:
|
else:
|
||||||
for data in im_frames:
|
for frame_data in im_frames:
|
||||||
if data['bbox'] is None:
|
im_frame = frame_data['im']
|
||||||
|
if not frame_data['bbox']:
|
||||||
# global header
|
# global header
|
||||||
header = getheader(data['im_frame'], palette, data['encoderinfo'])[0]
|
for s in getheader(im_frame, palette, frame_data['encoderinfo'])[0]:
|
||||||
for s in header + getdata(data['im_frame'],
|
|
||||||
(0, 0), **data['encoderinfo']):
|
|
||||||
fp.write(s)
|
fp.write(s)
|
||||||
|
offset = (0, 0)
|
||||||
else:
|
else:
|
||||||
# compress difference
|
# compress difference
|
||||||
data['encoderinfo']['include_color_table'] = True
|
frame_data['encoderinfo']['include_color_table'] = True
|
||||||
for s in getdata(data['im_frame'].crop(data['bbox']),
|
|
||||||
data['bbox'][:2], **data['encoderinfo']):
|
im_frame = im_frame.crop(frame_data['bbox'])
|
||||||
fp.write(s)
|
offset = frame_data['bbox'][:2]
|
||||||
|
for s in getdata(im_frame, offset, **frame_data['encoderinfo']):
|
||||||
|
fp.write(s)
|
||||||
if not save_all:
|
if not save_all:
|
||||||
header = getheader(im_out, palette, im.encoderinfo)[0]
|
for s in getheader(im_out, palette, im.encoderinfo)[0]:
|
||||||
for s in header:
|
|
||||||
fp.write(s)
|
fp.write(s)
|
||||||
|
|
||||||
|
# local image header
|
||||||
flags = 0
|
flags = 0
|
||||||
|
|
||||||
if get_interlace(im):
|
if get_interlace(im):
|
||||||
flags = flags | 64
|
flags = flags | 64
|
||||||
|
|
||||||
# local image header
|
|
||||||
_get_local_header(fp, im, (0, 0), flags)
|
_get_local_header(fp, im, (0, 0), flags)
|
||||||
|
|
||||||
im_out.encoderconfig = (8, get_interlace(im))
|
im_out.encoderconfig = (8, get_interlace(im))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user