ImageMagick - %d 可以与图像 属性 百分比转义一起使用吗?

ImageMagick - Can %d be used together with image property percent escapes?

我遇到了使用 ImageMagick 图像 属性% 无法解释的行为。考虑这个展示问题的最小示例:

convert rose: 'rose_%d.png'
# Resulting filename: rose_0.png (as expected)

convert rose: -set filename:mysize "%wx%h" 'rose_%[filename:mysize]_%d.png'
# Resulting filename: rose_70x46_%d0.png
# Why is '%d' in the output filename?
# Expected: rose_70x46_0.png

convert rose: -set filename:mysize "%wx%h" 'rose_%d_%[filename:mysize].png'
# Resulting filename: rose70x46.png
# Expected: rose_0_70x46.png

相关文档: https://www.imagemagick.org/Usage/files/#save_escapes

%d 可以与图像 属性 百分比逃逸一起使用吗?

Can %d be used together with image property percent escapes?

只有在 %[filename: 之前。正在寻找at the source code;它似乎是一个 case 语句。优先顺序允许字段宽度 & %d,但是一旦 %[ 被捕获,它就会停止检查右大括号 ] -- 或错误。

可能值得跳到 developer forums 来讨论此行为。

您可以通过将索引顺序移至 filename:mysize 占位符来解决此问题。

$ convert rose: -set filename:mysize "%wx%h_%p" rose_%[filename:mysize].png
#=> rose_70x46_0.png
$ convert rose: wizard: -set filename:mysize "%wx%h_%p" rose_%[filename:mysize].png
#=> rose_70x46_0.png rose_480x640_1.png