如何使用imageMagick缝合裁剪后的图像?

时间:2016-12-13 10:27:46

标签: imagemagick crop image-stitching

我有一个很大的图像,让我们把它命名为orig-image.tiff。 我想把它切成小块,在上面涂上东西,然后将新创建的小图像拼接在一起。

我用这个命令将它切成碎片:

convert orig-image.tiff -crop 400x400 crop/parts-%04d.tiff

然后我将通过对每个部分-XXXX.tiff图像应用处理并最终得到part-0000.png到part-2771.png的图像来生成许多图像

现在我想将图像拼接成一个大图像。 imagemagick能做到吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是PNG格式,那么瓷砖会"记住" 它们的原始位置,正如@Bonzo建议的那样,您可以将它们拆开并重新组装,如下所示:

# Make 256x256 black-red gradient and chop into 1024 tiles of 8x8 as PNGs
convert -size 256x256 gradient:red-black -crop 8x8 tile-%04d.png

并重新组装:

convert tile*png -layers merge BigBoy.png

这是因为瓷砖"记住" 它们在画布上的原始位置 - 例如下面+248+248

identify tile-1023.png
tile-1023.png PNG 8x8 256x256+248+248 16-bit sRGB 319B 0.000u 0:00.000

使用TIF,你可以这样做:

# Make 256x256 black-red gradient and chop into 1024 tiles of 8x8 as TIFs
convert -size 256x256 gradient:red-black -crop 8x8 tile-%04d.tif

并重新组装以下内容但遗憾的是您需要知道原始图像的布局:

montage -geometry +0+0 -tile 32x32 tile*tif BigBoy.tif

enter image description here

关于格伦在下面的评论,这里是pngcheck的输出,显示"记住" 的偏移量:

pngcheck tile-1023*png

<强>输出

OK: tile-1023.png (8x8, 48-bit RGB, non-interlaced, 16.9%).
iMac:~/tmp: pngcheck -v tile-1023*png
File: tile-1023.png (319 bytes)
  chunk IHDR at offset 0x0000c, length 13
    8 x 8 image, 48-bit RGB, non-interlaced
  chunk gAMA at offset 0x00025, length 4: 0.45455
  chunk cHRM at offset 0x00035, length 32
    White x = 0.3127 y = 0.329,  Red x = 0.64 y = 0.33
    Green x = 0.3 y = 0.6,  Blue x = 0.15 y = 0.06
  chunk bKGD at offset 0x00061, length 6
    red = 0xffff, green = 0xffff, blue = 0xffff
  chunk oFFs at offset 0x00073, length 9: 248x248 pixels offset
  chunk tIME at offset 0x00088, length 7: 13 Dec 2016 15:31:10 UTC
  chunk vpAg at offset 0x0009b, length 9
    unknown private, ancillary, safe-to-copy chunk
  chunk IDAT at offset 0x000b0, length 25
    zlib: deflated, 512-byte window, maximum compression
  chunk tEXt at offset 0x000d5, length 37, keyword: date:create
  chunk tEXt at offset 0x00106, length 37, keyword: date:modify
  chunk IEND at offset 0x00137, length 0
No errors detected in tile-1023.png (11 chunks, 16.9% compression).