WriteImage 允许编码器域的写入策略针对用户的格式前缀而不是解析的编码器。
作者: Yanhaoxi创建于 2026年8月21日更新于 2026年8月22日
- 提供策略(通过
MAGICK_CONFIGURE_PATH进行暴露):
<policymap>
<policy domain="coder" rights="read" pattern="PNG"/>
</policymap>- 创建一个非 PNG 输入(这样读取端与 PNG 写入策略无关):
magick -size 20x20 xc:red in.bmp- 直接写入被正确拒绝:
magick in.bmp out.png
magick: NotAuthorized `PNG' @ error/constitute.c/IsCoderAuthorized/456.(退出代码为 1;out.png 未创建)
- 通过只读前缀进行写入被错误地允许,并生成了一个 PNG:
magick in.bmp PWP:out.png
magick: NoEncodeDelegateForThisImageFormat `PWP' @ warning/constitute.c/WriteImage/1393.(退出代码为 0;PNG 字节被写入 - 在 Windows 上,它们位于文件 PWP 的替代数据流中,这是与错误无关的 Windows 文件系统副产品)
内容来源: ImageMagick/ImageMagick