How do I close an image opened in Pillow?

Question:

I have a python file with the Pillow library imported. I can open an image with

Image.open(test.png)

But how do I close that image? I’m not using Pillow to edit the image, just to show the image and allow the user to choose to save it or delete it.

Asked By: Chase Cromwell

||

Answers:

With Image.close()

You can also do it in a with block:

with Image.open('test.png') as test_image:
    do_things(test_image)

An example of using Image.close():

test = Image.open('test.png')
test.close()
Answered By: Morgan Thrapp

If you create a PIL object you will see there is no close method.

from PIL import Image

img=Image.open("image.jpg")
dir(img)

['_Image__transformer', '_PngImageFile__idat', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '_copy', '_dump', '_expand', '_makeself', '_new', '_open', 'category', 'convert', 'copy', 'crop', 'decoderconfig', 'decodermaxblock', 'draft', 'filename', 'filter', 'format', 'format_description', 'fp', 'frombytes', 'fromstring', 'getbands', 'getbbox', 'getcolors', 'getdata', 'getextrema', 'getim', 'getpalette', 'getpixel', 'getprojection', 'histogram', 'im', 'info', 'load', 'load_end', 'load_prepare', 'load_read', 'map', 'mode', 'offset', 'palette', 'paste', 'png', 'point', 'putalpha', 'putdata', 'putpalette', 'putpixel', 'quantize', 'readonly', 'resize', 'rotate', 'save', 'seek', 'show', 'size', 'split', 'tell', 'text', 'thumbnail', 'tile', 'tobitmap', 'tobytes', 'tostring', 'transform', 'transpose', 'verify']
Answered By: tzimhs panousis