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