WriteImage 允许编码器域的写入策略针对用户的格式前缀而不是解析的编码器。

作者: Yanhaoxi创建于 2026年8月21日更新于 2026年8月22日
  1. 提供策略(通过 MAGICK_CONFIGURE_PATH 进行暴露):
xml
<policymap>
  <policy domain="coder" rights="read" pattern="PNG"/>
</policymap>
  1. 创建一个非 PNG 输入(这样读取端与 PNG 写入策略无关):
magick -size 20x20 xc:red in.bmp
  1. 直接写入被正确拒绝:
magick in.bmp out.png
magick: NotAuthorized `PNG' @ error/constitute.c/IsCoderAuthorized/456.

(退出代码为 1;out.png 未创建)

  1. 通过只读前缀进行写入被错误地允许,并生成了一个 PNG:
magick in.bmp PWP:out.png
magick: NoEncodeDelegateForThisImageFormat `PWP' @ warning/constitute.c/WriteImage/1393.

(退出代码为 0;PNG 字节被写入 - 在 Windows 上,它们位于文件 PWP 的替代数据流中,这是与错误无关的 Windows 文件系统副产品)

内容来源: ImageMagick/ImageMagick