¿Cómo cierro una imagen abierta en Pillow?

2 minutos de lectura

Avatar de usuario de Chase Cromwell
Chase Cromwell

Tengo un archivo python con la biblioteca Pillow importada. Puedo abrir una imagen con

Image.open(test.png)

Pero, ¿cómo cierro esa imagen? No estoy usando Pillow para editar la imagen, solo para mostrar la imagen y permitir que el usuario elija guardarla o eliminarla.

Avatar de usuario de Morgan Thrapp
morgan thrapp

Con Image.close()

También puedes hacerlo en un with bloquear:

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

Un ejemplo de uso Image.close():

test = Image.open('test.png')
test.close()

  • Yo siempre uso la segunda opción. Los administradores de contexto son realmente agradables.

    – Brobin

    31 de julio de 2015 a las 17:03

  • @Brobin Oh, sí, con bloques es el camino a seguir. Y también una de las cosas que más extraño cuando tengo que usar otro idioma.

    -Morgan Thrapp

    31 de julio de 2015 a las 17:04

  • Usando “con” obtengo un “AttributeError: salida“Error con PIL 1.1.7, ¿qué versión usas?

    – Chris

    3 de agosto de 2017 a las 13:36


  • Sé que esta es una publicación muy antigua, pero en mi Mac .close() no hace nada. El archivo se abre en la vista previa y permanece abierto después de llamar a .close().

    – Difío

    1 de junio de 2022 a las 10:48

Si crea un objeto PIL, verá que no hay un método de cierre.

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']

  • Sin embargo, hay, echa un vistazo a la documentos. No estoy seguro de por qué no aparece en el directorio del objeto, pero definitivamente existe.

    -Morgan Thrapp

    7 julio 2016 a las 13:00


  • A My Pillow (versión 2.3.0) también parece faltarle el método de cierre.

    –Roger Huang

    25 de julio de 2016 a las 3:42

  • Estoy usando pkg_resources para comprobar su versión: >>> pkg_resources.get_distribution(‘Pillow’).version ‘2.3.0’

    –Roger Huang

    25 de julio de 2016 a las 3:42


  • En mi caso, también estaba usando PGMagick, así que asegúrese de no confundir los dos paquetes si está convirtiendo a PDF.

    – dev-jeff

    27 oct 2020 a las 16:39

¿Ha sido útil esta solución?