我还有其他一些可以在图像上执行的任务。例如选择多个图像,并将它们组合成一个图像。我让那部分使用 RMagick 和本地文件,我让上传部分使用 Shrine,但我需要将两者连接起来。上传图像后(理想情况下,该解决方案应与本地文件系统存储和 S3 一起使用),我如何才能再次访问该文件,以使用 ImageMagick/RMagick 对其进行操作?我假设如果我使用 S3,我需要将 S3 中的图像 DL 到服务器并临时存储它们?有没有其他方法可以做到这一点?
问问题
968 次
1 回答
6
您可以使用以下命令将任何上传的文件下载到临时文件Shrine::UploadedFile#download
:
tempfile = photo.image.download
# or
tempfile = photo.image[:original].download
这将返回一个Tempfile
实例,它是 的包装器File
,因此您可以通过以下方式访问磁盘上的位置#path
:
system "convert #{tempfile.path} -resize 500x500 output.jpg"
对于图像处理,我建议使用ImageProcessing gem,它会自动生成 aTempfile
作为结果(如果以前没有,则会在垃圾收集时关闭并删除)。
于 2018-07-20T02:58:49.600 回答