使用ImageMagick convert命令分割图片为2x2四等分遇异常问题
解决ImageMagick 2×2图片分割缺失第四块的问题
这不是bug,是-crop 50%x50%的裁剪逻辑导致的问题。当图片的宽度或高度为奇数时,50%比例的取整规则会让最后一个裁剪区域的尺寸被判定为无效(接近0),ImageMagick会自动跳过这个空区域,因此只生成3个文件。
解决方案1:用网格分割语法(推荐)
改用按网格数量分割的2x2@参数,这个语法会强制将图片分成2行2列的4个块,无论原图尺寸是否能被2整除,每个块都会被生成(即使最后一块尺寸略小)。修改后的命令:
convert "$1" -crop 2x2@ +repage output%d.jpg
解决方案2:手动计算块尺寸
先获取图片的宽高,再计算每个块的尺寸(确保奇数尺寸也能分割出有效块),然后执行裁剪:
# 获取图片宽高 width=$(identify -format "%w" "$1") height=$(identify -format "%h" "$1") # 计算半宽半高(奇数时向上取整) half_width=$(( (width + 1) / 2 )) half_height=$(( (height + 1) / 2 )) # 执行裁剪 convert "$1" -crop ${half_width}x${half_height} +repage output%d.jpg
内容的提问来源于stack exchange,提问作者Marinos An
相关产品推荐
相关产品推荐

