If only one frame, do not use image from sequence

This commit is contained in:
Andrew Murray 2015-08-24 23:51:02 +10:00
parent e88e90b8ed
commit 1b8d12b048

View File

@ -345,6 +345,7 @@ def _save(im, fp, filename, save_all=False):
if save_all: if save_all:
previous = None previous = None
first_frame = None
for im_frame in ImageSequence.Iterator(im): for im_frame in ImageSequence.Iterator(im):
im_frame = _convert_mode(im_frame) im_frame = _convert_mode(im_frame)
@ -352,10 +353,14 @@ def _save(im, fp, filename, save_all=False):
# e.g. getdata(im_frame, duration=1000) # e.g. getdata(im_frame, duration=1000)
if not previous: if not previous:
# global header # global header
for s in getheader(im_frame, palette, im.encoderinfo)[0] + \ first_frame = getheader(im_frame, palette, im.encoderinfo)[0]
getdata(im_frame, (0, 0), **im.encoderinfo): first_frame += getdata(im_frame, (0, 0), **im.encoderinfo)
fp.write(s)
else: else:
if first_frame:
for s in first_frame:
fp.write(s)
first_frame = None
# delta frame # delta frame
delta = ImageChops.subtract_modulo(im_frame, previous.copy()) delta = ImageChops.subtract_modulo(im_frame, previous.copy())
bbox = delta.getbbox() bbox = delta.getbbox()
@ -369,7 +374,9 @@ def _save(im, fp, filename, save_all=False):
# FIXME: what should we do in this case? # FIXME: what should we do in this case?
pass pass
previous = im_frame previous = im_frame
else: if first_frame:
save_all = False
if not save_all:
header = getheader(im_out, palette, im.encoderinfo)[0] header = getheader(im_out, palette, im.encoderinfo)[0]
for s in header: for s in header:
fp.write(s) fp.write(s)