Moved non-codec code outside of try block

This commit is contained in:
Andrew Murray 2022-02-28 13:15:12 +11:00
parent a606fd85a3
commit 4d868abd8a

View File

@ -223,11 +223,11 @@ class ImageFile(Image.Image):
) )
] ]
for decoder_name, extents, offset, args in self.tile: for decoder_name, extents, offset, args in self.tile:
seek(offset)
decoder = Image._getdecoder( decoder = Image._getdecoder(
self.mode, decoder_name, args, self.decoderconfig self.mode, decoder_name, args, self.decoderconfig
) )
try: try:
seek(offset)
decoder.setimage(self.im, extents) decoder.setimage(self.im, extents)
if decoder.pulls_fd: if decoder.pulls_fd:
decoder.setfd(self.fp) decoder.setfd(self.fp)
@ -502,10 +502,10 @@ def _save(im, fp, tile, bufsize=0):
except (AttributeError, io.UnsupportedOperation) as exc: except (AttributeError, io.UnsupportedOperation) as exc:
# compress to Python file-compatible object # compress to Python file-compatible object
for e, b, o, a in tile: for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
try:
if o > 0: if o > 0:
fp.seek(o) fp.seek(o)
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
try:
e.setimage(im.im, b) e.setimage(im.im, b)
if e.pushes_fd: if e.pushes_fd:
e.setfd(fp) e.setfd(fp)
@ -523,10 +523,10 @@ def _save(im, fp, tile, bufsize=0):
else: else:
# slight speedup: compress to real file object # slight speedup: compress to real file object
for e, b, o, a in tile: for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
try:
if o > 0: if o > 0:
fp.seek(o) fp.seek(o)
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
try:
e.setimage(im.im, b) e.setimage(im.im, b)
if e.pushes_fd: if e.pushes_fd:
e.setfd(fp) e.setfd(fp)