为什么imagemagick-convert能够在只有jpeg作为委托的情况下将jpg转换为png



当我执行命令时,转换-version,它给出了以下输出。

Version: ImageMagick 6.8.9-7 Q16 x86_64 2019-08-23 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: jpeg

根据上述内容,委托中仅支持 jpeg,这意味着只能读取和写入 jpeg。为什么我可以转换为 png?

convert /tmp/val.jpg /tmp/val.png工作得很好。为什么?

为什么这些格式称为委托而不是"支持的格式"?

https://imagemagick.org/script/convert.php https://www.imagemagick.org/discourse-server/viewtopic.php?t=28781

表示只能转换委托中的格式。

convert - version

并非所有的 ImageMagick 委托都是图像格式。有些支持文本(fontconfig,freetype)或颜色(lcms)。它们被称为委托,因为它们是 ImageMagick 用来处理某些图像格式或帮助完成其他任务的外部程序。

您的输出可能仍然是 JPG,但具有 png 后缀。您可以从以下位置检查

convert image -format "%m" info:
or 
identify -verbose image

您将看到实际格式。

例如,在这里我将 JPG 转换为虚构的 ABC 格式。

convert logo.jpg logo.abc
convert logo.abc -format "%m" info:
JPEG

所以实际格式是JPEG。

Imagemagick可以在没有委托的情况下写入某些格式(例如PDF),但需要一个委托(Ghostscript)来读取它。但是,我不认为PNG是这些格式之一。

您将需要重新安装或安装更多委托。我建议从二进制文件安装。

请参阅此处列出的适用于各种平台的 Imagemagick 二进制文件

你没有说你在什么平台上,但Linux发行版附带了ImageMagick和代表。

最新更新