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

标签 shell curl imagemagick pipeline imagemagick-convert

我有一些图片网址,我想下载它们。但这些文件具有不同的后缀,例如 .jpg.png.bmp。我还想把它们改成统一的格式,比如.JPEG。所以我想使用curl命令将图像下载到内存缓存中,然后使用ImageMagick包中的convert命令转换数据格式为 .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 ... | ...`

提前致谢。

最佳答案

您可以执行以下操作:

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

就是这样。

关于shell - 可以curl将远程url中的图像下载到缓存中,然后使用管道进行转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323815/

相关文章:

shell - 我怎么知道我的 shell 是什么类型的

git - 如何从终端或命令行创建 gitlab 项目

bash - 提示用户选择带有 bash 脚本的目录并读取结果

PHP cURL,POST JSON

image-processing - ImageMagick:将灰色提升为 CMYK 黑色?

bash - Scanimage 无法从变量获取参数

node.js - 将通知系统更改为 SSL。(目前在 Chrome 中使用 https 时会被阻止,因为使用的是 http)

php - curl 错误 :140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

php - Imagemagick 去饱和黑/白?

c++ - Magick++ 未定义对 Magick::Image::Columns 的引用