我已经多次看到这个问题,但我还没有能够开发出有效的解决方案。
我想打开一个图像('预览'会这样做)显示它几秒钟,然后关闭该图像以打开一个新图像,或者使用相同的实例来显示新图像,而不是创建一个新图像实例
我使用的是osx 10.12.6,刚开始使用python3。
我的目标是创建一个“幻灯片”,在专用的备用Mac上显示大约15,000张图像作为背景相框。在iPhoto,预览等中幻灯片的图像太多了所以我打算写一个简单的图像......哈!谈论排水沼泽! 谢谢(提前)
示例代码(到目前为止)
import PIL as Pillow
from PIL import Image
import os
import re
import string
os.listdir('/Slideshow')
results = []
for f in os.listdir('Slideshow'):
print (f)
if (f.startswith('.')):
print('not showing this one')
else:
os.system("open 'Slideshow/'+ f")
viewer = subprocess.Popen(["open", 'Slideshow/'+ f]) ##Opens the image to view
time.sleep(15)
viewer.kill()
答案 0 :(得分:0)
我通过使用 ImageMagick 和 GNU Parallel 创建10,000个不同的JPEG文件,在macOS Sierra上做了一些实验,如下所示:
parallel convert -size 800x600 xc:gray +noise random -quality 75 a-{}.jpg ::: {1..10000}
我创建了一个包含10,000个文件的列表,并启动 feh 而没有问题:
ls > filelist.txt
feh -f filelist.txt
我发现您可以将目录名称(文件夹)传递给预览应用以解决Argument list too long
错误。为此,您必须按⌘ + ⌥并将文件夹拖放到Dock中的预览图标上。
我发现在崩溃之前能够加载8,862张图像。我尝试减少文件名的长度(从longfilename-1.jpg
到1-jpg
)以查看名称的长度是否有所不同,但这没有帮助。我也尝试降低JPEG的质量以减少内存需求,但这也无济于事。
我不想不甘示弱,我创建了15个多页TIFF文件,每个文件包含1,000张图像。 预览设法打开所有15个文档,但达到了13,002页并崩溃了。
我越来越喜欢 feh ......