可以将远程URL中的图像下载到缓存中,然后使用管道进行转换吗?

时间:2014-01-24 03:22:36

标签: shell curl imagemagick pipeline imagemagick-convert

我有一些图片网址,我想下载它们。但这些文件具有不同的后缀,例如.jpg.png.bmp。我还想将它们更改为统一格式,例如.JPEG。所以我想使用curl命令将图像下载到内存缓存中,然后使用convert包中的ImageMagick命令将数据格式转换为.JPEG格式。有没有办法做这项工作?

    `curl http://aa.com/a.jpg`
    `convert a.jpg 00001.JPEG`
    `rm a.jpg`
    `curl http://bb.com/b.png`
    `convert b.png 00002.JPEG`
    `rm b.png`

我想简化这个程序,让临时文件保存到缓存中,然后不直接保存到磁盘中,这样可以减轻磁盘的负担。 有没有办法使用pipeline技术来完成这项工作?比如

    `curl http://aa.com/a.jpg | convert ... | ...`

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

curl http://aa.com/a.jpg | convert - 00001.jpeg
curl http://bb.com/b.jpg | convert - 00002.jpeg

然后该文件采用JPEG格式:

user@host:~# file 00001.jpeg
file.jpeg: JPEG image data, JFIF standard 1.01
user@host:~# file 00002.jpeg
file.jpeg: JPEG image data, JFIF standard 1.01

就是这样。