Me estoy haciendo un poco de edición de imágenes con el PIL biblioteca. El punto es, que no quiero guardar la imagen cada vez que en mi disco duro para ver en el Explorador. Hay un pequeño módulo que simplemente me permite configurar una ventana y mostrar la imagen?

  • Visualización de la imagen como? En un navegador?
  • en python hecho de la ventana. Algo así como una ventana de pygame. Yo podría hacerlo en pygame, pero me gustaría una solución mejor.
  • WxPython? O es que demasiado peso pesado? wxpython.org
  • ¿por qué no te quieres guardarlo?
  • supongamos que tengo 100 fotos pequeñas para mirar a través. Sería mejor si pudiera tener todo de ellos impresos en la pantalla de mi, sin tener que abrir otro programa. No estoy muy familiarizado con wxpython. Es sencillo?
  • Usted va a necesitar algún tipo de ventanas de la biblioteca—si pygame, wxPython, TkInter, PyQt, PyGtk, PyWin32, PyObjC, etc.—para abrir una ventana. Una vez que tienes una ventana abierta, la mayoría de ellos lo hacen trivial para mostrar una imagen en la ventana.
  • Otra posibilidad es la de script Explorer o algún otro programa (por ejemplo, a través de PyWin32COM) para hacer la pantalla para usted.
  • Así que libary recomiendas?
  • PIL tiene un montón de integración incorporada con TkInter, y es la única de ventanas de la biblioteca que viene incorporada en Python. Por lo tanto, si usted no tiene ninguna preferencia, tal vez empezar con eso. La mayoría de las personas que no crecen en él (o en Tcl/Tk) lo odio, pero si usted no está haciendo nada complicado debería ser más fácil para aprender los conceptos básicos de TkInter que, por ejemplo, obtener wx instalado y, a continuación, aprender los conceptos básicos de wx. Por otro lado, si usted ya sabe pygame y ya lo tienes instalado, es un poco más de trabajo, pero probablemente todavía más fácil que aprender todo un nuevo sistema.

5 Comentarios

  1. 70

    De la PIL tutorial:

    Una vez una instancia de la Imagen clase, puede utilizar los métodos
    definido por esta clase de procesar y manipular la imagen. Para
    ejemplo, vamos a mostrar la imagen que acaba de cargar:

         >>> im.show()

    • en realidad, es lo que estaba buscando, pero tengo una galería fotográfica de windows live error. 0x800706ba
    • Esto es porque Windows live photo gallery es asociado con el tipo de archivo temporal PIL creado cuando se llama a este método-que probablemente defecto .bmp de Windows que no es compatible con muchas de las capacidades de los modernos formatos de archivo de imagen. Prueba a configurar el formato de la imagen atributo explícitamente .png (es decir,im.format = "PNG") antes de la im.show() llamada.
    • todavía persiste el problema. Yo en realidad podría tratar de una ventana de la biblioteca.
    • PIL integrado en show() método es el más simple posible versión de la «secuencia de comandos de algún otro programa para mostrar». (En sistemas Windows anteriores que acabaría con un montón de MSPaint windows). Valió la pena lo que sugiere y tratando incluso si no trabajan. En realidad se podría hacer algo similar, y casi tan simple, por ejemplo, explícitamente lanzamiento MSPaint.exe en cada imagen…
    • En realidad el problema suena como un bug en la Galería Fotográfica de Windows Live 2011 y hay una versión más reciente que puede ser descargar que se puede solucionar el PIL show() problema.
    • Agradable de depuración. Eso es definitivamente vale la pena probar primero.
    • No se puede asociar los archivos con algo mejor, como XnView?
    • Como dije en un comentario anterior, im.show() se abra la imagen con lo que la aplicación está asociada con el tipo de archivo temporal PIL crea, así que probablemente «sí», si que pasa a ser XnView. Muchas aplicaciones hacen automáticamente (o pedirle a usted si usted quiere que se haga en el momento de la instalación). PIL defecto era probable recogerlos, por lo que no hay software de terceros deben estar instalados.
    • He aquí un link actualizado para descargar una versión de Windows Live Photo Gallery para diversos (mayores) de las versiones de Windows. Es parte de la Windows Essentials suite de programas.
    • Tengo un error similar que dijo algo acerca de la imagen no se pudo encontrar, ya que se había movido. Pero corrió la misma secuencia de comandos de nuevo y esta vez fue capaz de cargar la imagen con el valor predeterminado de aplicación de Fotos en un Windows10 de la máquina con la Caída de los Creadores de actualización.

  2. 5

    He probado y funciona muy bien para mí:

    from PIL import Image
    im = Image.open('image.jpg')
    im.show()
    • Mientras que esto puede responder a la pregunta (no probado) es la mejor práctica para proporcionar una explicación con su código de forma. En realidad, es desanimado a dar sólo el código de respuestas.
  3. 4

    Si usted encuentra que PIL tiene problemas en algunas plataformas, utilizando un nativo visor de imágenes puede ayudar.

    img.save("tmp.png") #Save the image to a PNG file called tmp.png.

    Para MacOS:

    import os
    os.system("open tmp.png") #Will open in Preview.

    Para la mayoría de los sistemas GNU/Linux con X.Org y un entorno de escritorio:

    import os
    os.system("xdg-open tmp.png")

    Para Windows:

    import os
    os.system("powershell -c tmp.png")
    • Para Windows me funciona: os.startfile("tmp.png")
  4. 1

    Puede mostrar una imagen en su propia ventana, con Tkinter, w/o, dependiendo de visores de imágenes instalado en el sistema:

    import Tkinter as tk
    from PIL import Image, ImageTk  # Place this at the end (to avoid any conflicts/errors)
    
    window = tk.Tk()
    #window.geometry("500x500") # (optional)    
    imagefile = {path_to_your_image_file}
    img = ImageTk.PhotoImage(Image.open(imagefile))
    lbl = tk.Label(window, image = img).pack()
    window.mainloop()

    Para Python 3, reemplazar import Tkinter as tk con import tkinter as tk.

    • Donde le hicieron ver que el código no implica guardar la imagen en el disco??? La pregunta pide una manera de editar una imagen, w/o tener que guardarlo en el disco cada vez. Pero usted debe abrir la imagen desde el disco al menos una vez en el principio. A continuación, puede procesar y ver la imagen cargada en la memoria como ‘img’, como muchas veces te gusta w/o que impliquen cualquier operación de disco.

Dejar respuesta

Please enter your comment!
Please enter your name here