我有一张由许多小图片(非贴在一起)组成的大图片,背景是透明的。像一个雪碧图,但精灵不是所有相同大小,也不是按网格布局。
我能用ImageMagick将该图片分割成小图片吗?
例如,下面这个示例(其中#
=有颜色的像素):
# ##
# #
# #
###
成为这些:
#
#
##
#
#
#
###
我有一张由许多小图片(非贴在一起)组成的大图片,背景是透明的。像一个雪碧图,但精灵不是所有相同大小,也不是按网格布局。
我能用ImageMagick将该图片分割成小图片吗?
例如,下面这个示例(其中#
=有颜色的像素):
# ##
# #
# #
###
#
#
##
#
#
#
###
time convert \ very-very-large.png \ -quality 85 \ -write mpr:mpc:label \ +delete \ mpr:mpc:label -crop '3000x2001+0+491' -resize '170x116!>' -write pic1.png +delete \ mpr:mpc:label -crop '2981x2883+8+0' -resize '75x75!>' -write pic2.png +delete \ mpr:mpc:label -crop '1100x1983+0+0' -resize '160x160!>' -write pic3.png +delete \ mpr:mpc:label -crop '2000x2883+0+0' -resize '1024x960!>' -write pic4.png +delete \ mpr:mpc:label -crop '1000x2883+0+0' -resize '190x188!>' -write pic5.png +delete \ mpr:mpc:label -crop '3000x2000+0+0' -resize '2048x2047!>' -write pic6.png +delete \ mpr:mpc:label -crop '3000x2883+0+0' -resize '595x421!>' -write pic7.png +delete \ mpr:mpc:label -crop '3000x2883+0+0' -resize '3000x2883!>' -write pic8.png将从大图中剪切并保存8个不同的子图像(以不同的名称)。
如果您不想手动查找图像分割的坐标,可以尝试使用segment_image脚本,该脚本位于ImageMagick示例脚本区域。它使用ImageMagick命令进行简单的自动分割。
有关此脚本的背景和使用说明,请参见此处。
使用三个裁剪命令,每个部分一个:
convert mosaic -crop 1x2+0+0 part1
convert mosaic -crop 2x3+2+0 part2
convert mosaic -crop 3x2+0+2 part3