在 Raspbian 上防止魔杖显示方法中断
Prevent interruption of wand display method on Raspbian
我在我的树莓派项目中使用 wand 库 运行 raspbian 和 python 2.7。
我有如下代码部分显示来自url的图片:
with Image(file=urllib2.urlopen(r.text)) as imageOBJ:
display(imageOBJ)
这些行正确显示图像。但是,我希望此 window 保持打开状态,并希望我的流程继续处理脚本中的其他内容。因为 30 秒后我想重复同样的事情并更改 window 中的图像。现在,我的代码不是 运行,直到我关闭显示 window。
请注意,我的 mac 不是这种情况,只有 raspberry pi B+,气喘吁吁 raspbian。
如何在不关闭图像显示的情况下防止这种行为window?
提前致谢
此行为是预期的,因为 Windows 和 OS X 分别调用 OS 的 运行 命令 start
和 open
-- see reference. On the Raspberry Pi, and other like systems, the wand library calls MagickDisplayImage 直接在 Python 的 MainThread.
要在 Raspberry Pi 上模拟类似行为,请使用 xdg-open 实用程序,以及 Python 的 subprocess
和 tmpfile
模块。
- 创建一个临时文件来保存图像
- 将图像写入临时文件
- 调用
xdg-open
在隔离进程中打开临时文件。
import subprocess, tempfile
from wand.image import Image
with Image(filename='wizard:') as imageOBJ:
tempOBJ = tempfile.NamedTemporaryFile(suffix='.jpg',
prefix='/tmp/myProject-',
delete=False)
imageOBJ.save(file=tempOBJ)
subprocess.call('xdg-open {}'.format(tempOBJ.name), shell=True)
当然,OS distro/version/desktop-environment.
的里程数会有所不同
我在我的树莓派项目中使用 wand 库 运行 raspbian 和 python 2.7。
我有如下代码部分显示来自url的图片:
with Image(file=urllib2.urlopen(r.text)) as imageOBJ:
display(imageOBJ)
这些行正确显示图像。但是,我希望此 window 保持打开状态,并希望我的流程继续处理脚本中的其他内容。因为 30 秒后我想重复同样的事情并更改 window 中的图像。现在,我的代码不是 运行,直到我关闭显示 window。
请注意,我的 mac 不是这种情况,只有 raspberry pi B+,气喘吁吁 raspbian。
如何在不关闭图像显示的情况下防止这种行为window?
提前致谢
此行为是预期的,因为 Windows 和 OS X 分别调用 OS 的 运行 命令 start
和 open
-- see reference. On the Raspberry Pi, and other like systems, the wand library calls MagickDisplayImage 直接在 Python 的 MainThread.
要在 Raspberry Pi 上模拟类似行为,请使用 xdg-open 实用程序,以及 Python 的 subprocess
和 tmpfile
模块。
- 创建一个临时文件来保存图像
- 将图像写入临时文件
- 调用
xdg-open
在隔离进程中打开临时文件。
import subprocess, tempfile
from wand.image import Image
with Image(filename='wizard:') as imageOBJ:
tempOBJ = tempfile.NamedTemporaryFile(suffix='.jpg',
prefix='/tmp/myProject-',
delete=False)
imageOBJ.save(file=tempOBJ)
subprocess.call('xdg-open {}'.format(tempOBJ.name), shell=True)
当然,OS distro/version/desktop-environment.
的里程数会有所不同