From e220e0038677b8687b5773bb6c68d3a1b8d07fd5 Mon Sep 17 00:00:00 2001 From: Eric Soroos Date: Fri, 5 Jan 2018 12:36:52 +0000 Subject: [PATCH] Typing: Image.getchannel --- src/PIL/Image.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 61ab5fd20..cdbef9dbf 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -741,7 +741,7 @@ class Image(object): :param encoder_name: What encoder to use. The default is to use the standard "raw" encoder. - :param *args: Extra arguments to the encoder. May be one tuple, + :param *args: Extra arguments to the encoder. May be one tuple, or individual arguments :rtype: A bytes object. """ @@ -2002,7 +2002,7 @@ class Image(object): open_fp = True else: _fp = fp # type: ignore - + if not filename and hasattr(_fp, "name") and isPath(_fp.name): # only set the name for metadata purposes filename = _fp.name @@ -2128,14 +2128,18 @@ class Image(object): """ self.load() + channel_int = 0 + if isStringType(channel): try: - channel = self.getbands().index(channel) + channel_int = self.getbands().index(channel) except ValueError: raise ValueError( 'The image has no channel "{}"'.format(channel)) + else: + channel_int = channel # type: ignore - return self._new(self.im.getband(channel)) + return self._new(self.im.getband(channel_int)) def tell(self): # type: () -> int @@ -2223,7 +2227,7 @@ class Image(object): in the output image. :returns: An :py:class:`~PIL.Image.Image` object. """ - + if self.mode == 'LA': return self.convert('La').transform( size, method, data, resample, fill).convert('LA')