diff --git a/src/PIL/Image.py b/src/PIL/Image.py index fa5b20c3f..f37209335 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -401,15 +401,17 @@ def _getdecoder(mode, decoder_name, args, extra=()): try: decoder = DECODERS[decoder_name] - return decoder(mode, *args + extra) except KeyError: pass + else: + return decoder(mode, *args + extra) + try: # get decoder decoder = getattr(core, decoder_name + "_decoder") - return decoder(mode, *args + extra) except AttributeError: raise OSError("decoder %s not available" % decoder_name) + return decoder(mode, *args + extra) def _getencoder(mode, encoder_name, args, extra=()): @@ -422,15 +424,17 @@ def _getencoder(mode, encoder_name, args, extra=()): try: encoder = ENCODERS[encoder_name] - return encoder(mode, *args + extra) except KeyError: pass + else: + return encoder(mode, *args + extra) + try: # get encoder encoder = getattr(core, encoder_name + "_encoder") - return encoder(mode, *args + extra) except AttributeError: raise OSError("encoder %s not available" % encoder_name) + return encoder(mode, *args + extra) # --------------------------------------------------------------------