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

min*_*ing 2 shell curl pipeline imagemagick 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`
Run Code Online (Sandbox Code Playgroud)

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

    `curl http://aa.com/a.jpg | convert ... | ...`
Run Code Online (Sandbox Code Playgroud)

提前致谢。

cha*_*aos 5

您可以执行以下操作:

curl http://aa.com/a.jpg | convert - 00001.jpeg
curl http://bb.com/b.jpg | convert - 00002.jpeg
Run Code Online (Sandbox Code Playgroud)

文件格式为 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
Run Code Online (Sandbox Code Playgroud)

就是这样。

  • 另一种选择:直接使用 ImageMagick,因为它支持 [HTTP](http://www.imagemagick.org/Usage/files/#read)。所以 `convert http://example.com/a.png 00001.jpeg` 就可以了。 (4认同)