如何自动确定ImageMagick Montage的-tile参数实现2行N列表格布局
自动设置ImageMagick montage的tile参数生成2行布局
要实现2行x列的垂直表格布局,核心是先统计其中一类图片的数量,再将该数量作为-tile参数的列数,配合固定的2行即可。
步骤1:统计目标图片数量
通过shell命令安全统计指定类别的图片数量(以${output}/proc*.png为例),将结果存入变量:
# 启用nullglob避免无匹配时出错,用数组存储图片文件 shopt -s nullglob proc_images=("${output}/proc*.png") # 获取数组长度,即图片数量 col_count=${#proc_images[@]} shopt -u nullglob
这种方式比ls | wc -l更可靠,能处理文件名含空格或特殊字符的场景。
步骤2:代入montage命令
将统计得到的col_count作为列数,配合x2(固定2行)加入-tile参数,完整命令如下:
montage \( "${output}/proc*.png" \) \( "${output}/${target}*.png" \) \ -tile ${col_count}x2 \ -geometry 1200x900+1+1 \ -frame 4 \ -background white \ -mattecolor lightgoldenrod2 \ -mode Frame \ -bordercolor white \ ${output}/${project_summary}.png
执行后montage会自动将第一类图片排列在第一行,第二类排列在第二行,形成预期的2行x列垂直表格。
注意事项
- 若两类图片数量不一致,montage会在数量较少的行末尾自动补空白填充。
- 如需以另一类图片数量作为列数,只需修改数组的通配符路径即可。
内容的提问来源于stack exchange,提问作者James Starlight
相关产品推荐
相关产品推荐

