我正在寻找使用 ImageMagick 的转换实用程序为存储在 S3 中的图像制作缩略图。我正在用 Python 写这个。
我应该如何处理这个?
我是否应该从 S3 读取图像,将其保存到 EC2 实例上的临时文件夹,将缩略图生成到临时目录,然后将临时文件放入 S3 并删除它?
或者我可以将 S3 的结果直接“管道”到 ImageMagick 而不将其存储到本地磁盘吗?
有推荐的方法吗?
提前致谢。
我正在寻找使用 ImageMagick 的转换实用程序为存储在 S3 中的图像制作缩略图。我正在用 Python 写这个。
我应该如何处理这个?
我是否应该从 S3 读取图像,将其保存到 EC2 实例上的临时文件夹,将缩略图生成到临时目录,然后将临时文件放入 S3 并删除它?
或者我可以将 S3 的结果直接“管道”到 ImageMagick 而不将其存储到本地磁盘吗?
有推荐的方法吗?
提前致谢。
您可以将 subprocess 与文件对象一起使用,并将它们直接通过管道传输到 imagemagick。例如,这里我直接将在线 png 转换为 jpg,而不使用临时文件。
import subprocess
import urllib2
import sys
source = urllib2.urlopen('http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png')
p = subprocess.Popen(['convert','png:-', 'jpg:-'], stdin=source, stdout=subprocess.PIPE)
p.communicate()[0] # this is your converted image