ImageMagick裁剪带重叠瓦片:如何生成精确等尺寸输出?
ImageMagick 瓦片分割问题解答
问题1:能否单条命令直接分割为精确等尺寸瓦片?
可以直接用单条命令实现,不需要提前手动扩展原图。通过ImageMagick的内置表达式计算补边尺寸,配合-extent参数自动完成原图扩展,再进行裁剪就能得到尺寸完全一致的瓦片。
问题2:是否支持指定输出尺寸+重叠量+自动补色?
完全支持。可以同时定义瓦片尺寸、重叠量,指定填充颜色,让ImageMagick自动扩展原图边缘,确保所有输出瓦片尺寸统一。
示例命令
假设需要将原图分割为10列×10行的瓦片,水平/垂直重叠量均为10px,不足部分用黑色填充:
convert total.jpg -set option:tile_cols 10 -set option:tile_rows 10 -set option:overlap_x 10 -set option:overlap_y 10 \ -set option:tile_w "%[fx:ceil((w + (tile_cols-1)*overlap_x)/tile_cols)]" \ -set option:tile_h "%[fx:ceil((h + (tile_rows-1)*overlap_y)/tile_rows)]" \ -set option:new_w "%[fx:tile_cols*tile_w - (tile_cols-1)*overlap_x]" \ -set option:new_h "%[fx:tile_rows*tile_h - (tile_rows-1)*overlap_y]" \ -background black -gravity northwest -extent "%[new_w]x%[new_h]" \ -crop "%[tile_w]x%[tile_h]+%[overlap_x]+%[overlap_y]" split_%04d.png
命令说明
-set option:定义变量,方便快速调整列数、行数、重叠量等参数fx表达式自动计算:tile_w/tile_h:单个瓦片的精确尺寸new_w/new_h:扩展后原图的总尺寸,保证能适配瓦片数量与重叠量的组合
-background black指定填充颜色,可替换为其他颜色(如white、#ff0000)-extent将原图扩展到计算后的尺寸,不足区域用指定颜色填充-crop按照设定的瓦片尺寸和重叠量完成分割
内容的提问来源于stack exchange,提问作者fhw72
相关产品推荐
相关产品推荐

