重新组装碎片图像

时间:2013-02-03 23:18:13

标签: image image-processing

我的图像已被分成64行64列。每张图片为256x256像素。图像都是PNG。它们被命名为“Image - .png”,例如“Image-3-57”。行和列编号从0开始而不是1。

如何将其重新组合成一张图片?理想情况下使用BASH和工具(我是一个系统管理员)虽然PHP也是可以接受的。

1 个答案:

答案 0 :(得分:0)

嗯,如果你想使用PHP,它并不是很复杂。你需要的只是一些图像连接 - imagecreateimagecopy。如果您的PNG是半透明的,则还需要imagefilledrectangle来创建透明背景。 在下面的代码中,我依赖于事实,所有块都是相同的大小 - 所以像素大小必须能够除以块的数量。

<?php
$width = 256*64;    //height of the big image, pixels
$height = 256*64;
$chunks_X = 64;  //Number of chunks
$chunks_Y = 64;  //Same for Y
$chuk_size_X = $width/$chunks_X;  //Compute size of one chunk, will be needed in copying
$chuk_size_Y = $height/$chunks_Y;

$big = imagecreate($width, $height);   //Create the big one
for($y=0; $y<$chunks_Y; $y++) {
  for($x=0; $x<chunks_X; $x++) {
    $chunk = imagecreatefrompng("Image-$x-$y.png");
    imagecopy($big, $chunk, 
              $x*$chuk_size_X,    //position where to place little image    
              $y*$chuk_size_Y,
              0,                  //where to copy from on little image
              0,
              $chuk_size_X,       //size of the copyed area - whole little image here
              $chuk_size_Y,
    );
    imagedestroy($chunk);        //Don't forget to clear memory
  }
}
?>

这只是一个草案。我不确定所有theese xs和ys以及其他细节。已经晚了,我累了。