0

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

我怎样才能将它重新组合成一个图像?理想情况下使用 BASH 和工具(我是系统管理员)虽然 PHP 也是可以接受的。

4

1 回答 1

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
  }
}
?>

这只是一个草稿。我不确定所有这些 xs 和 ys 以及其他细节。时间不早了,我累了。

于 2013-02-03T23:28:31.217 回答