用convert转换图片时如何将输出定向至STDOUT而非生成实体文件
执行失败的核心原因
你之前命令输出异常的本质是写法不符合ImageMagick的特殊路径解析规则:当代表标准输出的-和格式后缀拼写成-.png时,程序会把整段字符串识别为普通实体文件名,不会触发向STDOUT输出的逻辑分支,因此才会生成名为-.png的本地文件。
正确实现方式
ImageMagick识别STDOUT输出的固定格式为「目标输出格式:输出目的地」,跨格式转换并直接将结果发送到STDOUT的可用命令为:
convert input.jpg png:-
实用说明
- 该写法完全支持任意跨格式转换,只需替换对应格式名即可调整输出类型,比如需要转成WebP就写
webp:-,转成AVIF就写avif:- - 输出内容可直接和管道操作配合,全程无需生成实体临时文件,典型用法示例:
convert input.jpg png:- | 后续处理指令 - 注意不要将代表STDOUT的参数放在输入文件参数之前,否则会被识别为输入源导致执行报错
内容的提问来源于stack exchange,提问作者GFL
相关产品推荐
相关产品推荐

