Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pillow 9.2: 'NoneType' object has no attribute 'copy' #6454

Closed
doublex opened this issue Jul 20, 2022 · 1 comment · Fixed by #6455
Closed

Pillow 9.2: 'NoneType' object has no attribute 'copy' #6454

doublex opened this issue Jul 20, 2022 · 1 comment · Fixed by #6455
Labels

Comments

@doublex
Copy link

doublex commented Jul 20, 2022

Testcase:

import base64, io
import PIL.Image

gif = base64.b64decode('''
R0lGODlhSQCCAPflAP39/f39/f39/f79/f79/f79/f79/f79/f79/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7++P398fz87Pz75vz84f393f392v392fv72Pj41fPw0ezoy+Xgxt7ZwNTPuM/Ks8zDqsy/odC7kdy5e+O5bOa2Yea0XOayWeWtVuWtU+SsT+WtS+KqSuCnRN2jQNuhP9icPdaZO9OWPtCTPNCQOc6MNMuJMsmHMcWFMsKFNrOGSaCFXo6DboJ/c3d0bW5rZnRoWoVnSptqO6lrMbFqKrZpKLRkJq9fJKpbI6VYIp5TIZpSIJlPIJdMIJVHIJBEHopDHYVDHYJCHH4+Gno8GXk4GHY2F3UzFXEvFGwqDmUkDF0cB1cYBFETA0kNA0MKAz4HAzkGBTQEBygDCBgDCwgCCgYDEwYDGQUDHgkCJAsDKAoGLAcPMQUWNgMdOgMgPQEiPgIkQAMmQwMpRQQrSAksSREsShUqRxosSR4wSyMyTSo0
Szc9TT4+Pz84Nz85MyH5BAgAAOUALAAAAABJAIIAAAj+AFEIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnBSeNykX12LFiuG7dqjUrl7Fly4J5eoTCCMsMRgSM0lWsbS1XtGDVukXrFi5bsFCxwkXrVKlRo0iRCtYLZQZNw6jSetXqVjFbuHAVU1at2bVs2KhNUyYtWS6upVCVUlWL6r9HGUQWI/a5lqzXt5xhuwytGbRs17R1AxdOHLhv4Lht45bNmbK7t2a5siXsn9mNCB7FimVX8rHb0KZ105ZtWjJjxLD+FmtWbRo0aNq8ceMGrpv7bdCYFaPVqtUpWP82yrqL67q1bel1cw012FTzTDLh4fLKKqvY8spctdRSzCys5IKKMNh4A6A20BQjy4Kp6JIfRQKgQEpdxSTDjDTarMfdNcok
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''')

with PIL.Image.open(io.BytesIO(gif)) as img:
    assert not getattr(img,'is_animated',False)
    PIL.ImageOps.exif_transpose( img )

Console:

Traceback (most recent call last):
  File "err.py", line 17, in <module>
    PIL.ImageOps.exif_transpose( img )
  File "/home/max/.local/lib/python3.8/site-packages/PIL/ImageOps.py", line 610, in exif_transpose
    return image.copy()
  File "/home/max/.local/lib/python3.8/site-packages/PIL/Image.py", line 1150, in copy
    return self._new(self.im.copy())
AttributeError: 'NoneType' object has no attribute 'copy'
@radarhere
Copy link
Member

Good catch. I've created PR #6455 to resolve this.

@radarhere radarhere changed the title PIL 9.2: 'NoneType' object has no attribute 'copy' Pillow 9.2: 'NoneType' object has no attribute 'copy' Jul 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants