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

时间:2019-02-07 19:39:29

标签: imagemagick

我遇到了使用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可以与图像属性百分比转义符一起使用吗?

1 个答案:

答案 0 :(得分:2)

  

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

仅在%[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