Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用imagemagick分割图像_Image_Image Processing_Imagemagick_Image Manipulation - Fatal编程技术网

用imagemagick分割图像

用imagemagick分割图像,image,image-processing,imagemagick,image-manipulation,Image,Image Processing,Imagemagick,Image Manipulation,我有一个由许多小图像(不接触)组成的透明背景的大图像。类似于精灵表,但精灵的大小不尽相同,也不在网格上 我可以使用ImageMagick将图像分割成更小的图像吗 例如,这个:(其中#=彩色像素) 变成这些 # # ## # # # ### 使用三个,每个部分一个: convert mosaic -crop 1x2+0+0 part1 convert mosaic -crop 2x3+2+0 part2 convert mosaic -crop 3x2+0+2 part3 您可以在一个

我有一个由许多小图像(不接触)组成的透明背景的大图像。类似于精灵表,但精灵的大小不尽相同,也不在网格上

我可以使用ImageMagick将图像分割成更小的图像吗

例如,这个:(其中
#
=彩色像素)

变成这些

#
#

##
#
#

  #
###
使用三个,每个部分一个:

convert mosaic -crop 1x2+0+0 part1
convert mosaic -crop 2x3+2+0 part2
convert mosaic -crop 3x2+0+2 part3

您可以在一个命令中完成这项工作,而且非常有效。例如,此命令:

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 时间转换\ very-very-large.png\ -质量85\ -写入mpr:mpc:label\ +删除\ mpr:mpc:标签-裁剪“3000x2001+0+491”-调整大小“170x116!>”-写入pic1.png+delete\ mpr:mpc:标签-裁剪'2981x2883+8+0'-调整大小'75x75!>'-写入pic2.png+delete\ mpr:mpc:标签-裁剪“1100x1983+0+0”-调整大小“160x160!>”-写pic3.png+delete\ mpr:mpc:标签-裁剪“2000x2883+0+0”-调整大小“1024x960!>”-写入pic4.png+delete\ mpr:mpc:标签-裁剪“1000x2883+0+0”-调整大小“190x188!>”-写pic5.png+delete\ mpr:mpc:标签-裁剪“3000x2000+0+0”-调整“2048x2047!”-写pic6.png+delete\ mpr:mpc:标签-裁剪“3000x2883+0+0”-调整大小“595x421!>”-写pic7.png+delete\ mpr:mpc:标签-裁剪“3000x2883+0+0”-调整大小“3000x2883!>”-编写pic8.png
将从较大的子图像中剪切并保存(以不同的名称)8个不同的子图像。

如果不想查找自动分割图像的坐标,可以尝试从中使用脚本。它使用ImageMagick命令进行简单的自动分割


此脚本的一些背景和使用说明已经提供。

我不知道如何在ImageMagick中执行此操作,但请查找纹理地图集。问题的复杂性在很大程度上取决于您是否希望IM检测一致区域,或者您是否已经掌握了这些信息(即预定义的掩码)。 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