我正在寻找一种在Python程序中使用ImageMagick来检索批量照片尺寸的计算和内存效率方法。
我首先使用了当前最喜欢的ImageMagick-Python包,Wand。我试过了,感觉很慢。因此,我使用subprocess.check_output()简单地执行了ImageMagick,从而对其进行了测试。子流程的速度提高了10倍以上。
我的问题:是其他人的经历吗?有没有办法更快地使用Wand?
魔杖 1.2秒:
1.jpg: 3264x2448
2.jpg: 1600x1200
3.jpg: 1700x1101
4.jpg: 1600x1200
5.jpg: 3648x2736
6.jpg: 2789x1980
7.jpg: 2400x1600
8.jpg: 3648x2736
processed 8 files in 1.236s
Subprocess只用 0.1秒来检索相同的文件:
1.jpg: 3264x2448
2.jpg: 1600x1200
3.jpg: 1700x1101
4.jpg: 1600x1200
5.jpg: 3648x2736
6.jpg: 2789x1980
7.jpg: 2400x1600
8.jpg: 3648x2736
processed 8 files in 0.102s
魔杖代码:
for filename in files:
with wand.image.Image(filename=filename) as img: return img.width, img.height
子流程代码:
subprocess.check_output(['identify', '-format', '%f:%w:%h\\n', 'path/to/imgs/*.jpg'])
# parse output by splitting each line on the ':'
我意识到这不是苹果,因为我在Wand中每个文件调用一次ImageMagick。但是,我在Wand中看不到任何批处理选项,所以我相信这是Wand可以为我的场景做的最佳选择。
谢谢!