我的图像已被分成64行64列。每张图片为256x256像素。图像都是PNG。它们被命名为“Image - .png”,例如“Image-3-57”。行和列编号从0开始而不是1。
如何将其重新组合成一张图片?理想情况下使用BASH和工具(我是一个系统管理员)虽然PHP也是可以接受的。
答案 0 :(得分:0)
嗯,如果你想使用PHP,它并不是很复杂。你需要的只是一些图像连接 - imagecreate和imagecopy。如果您的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以及其他细节。已经晚了,我累了。