打开/关闭preview.app的实例

时间:2017-08-22 05:12:52

标签: macos python-3.x

我已经多次看到这个问题,但我还没有能够开发出有效的解决方案。

我想打开一个图像('预览'会这样做)显示它几秒钟,然后关闭该图像以打开一个新图像,或者使用相同的实例来显示新图像,而不是创建一个新图像实例

我使用的是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()

1 个答案:

答案 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.jpg1-jpg)以查看名称的长度是否有所不同,但这没有帮助。我也尝试降低JPEG的质量以减少内存需求,但这也无济于事。

我不想不甘示弱,我创建了15个多页TIFF文件,每个文件包含1,000张图像。 预览设法打开所有15个文档,但达到了13,002页并崩溃了。

我越来越喜欢 feh ......