【问题标题】:Python opening images without cmdPython在没有cmd的情况下打开图像
【发布时间】:2016-10-19 16:22:09
【问题描述】:

我正在开展一个项目,其中包括使用Pillow 模块通过tkinter 窗口打开图像。

每当我尝试打开图像时,它们的背面都会出现黑屏。

如何单独打开它们?

我在这里点击一张照片:

然后打开,后面是黑屏:

这是我的go_to_function

from PIL import Image

def go_to_photo():
    try:
        img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.png')
        img.show()
        img.close()
    except:
        try:
            img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.jpg')
            img.show()
            img.close()
        except:
            try:
                img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.jpeg')
                img.show()
                img.close()
            except:
                print('without a photo')

【问题讨论】:

  • 你如何运行这个函数?直接在代码中还是使用 subprocess() ?可能img.show() 创建窗口运行cmd.exe(这个黑屏隐藏)。也许使用tk.TopLevel() 创建自己的窗口并在tk.Label 中显示图像。
  • 我直接在代码中使用它。是的,img.show() 创建了窗口,我不知道如何关闭它。感谢您的想法,但没有任何 Image 的内置参数可以阻止黑屏。
  • 我不认为有任何争论。据我所知,show() 是为了在短脚本中显示图像而创建的——主要是为了调试代码。

标签: python image tkinter pillow


【解决方案1】:

来自docs

在 Windows 上,它将图像保存到临时 BMP 文件,并使用 标准 BMP 显示实用程序来显示它。

这意味着您可以简单地更改默认程序以打开 bmp 文件,例如绘画,它将使用该程序来显示您的图像。

顺便说一句:您可以将 img.show()img.close() 移到 try-except 块之后,这样您就不必经常重复自己。

【讨论】:

  • 它没有用。我使用 Picasa 作为默认程序,但它没有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 2017-07-18
  • 1970-01-01
相关资源
最近更新 更多