64 行 x 64 列のパーツに分割された画像があります。各画像は 256x256 ピクセルです。画像はすべてPNGです。これらは、「Image--.png」(たとえば「Image-3-57」) という名前です。行と列の番号付けは、1 ではなく 0 から始まります。
これを 1 つのイメージに戻すにはどうすればよいですか? 理想的には BASH とツール (私はシステム管理者です) を使用しますが、PHP も許容されます。
64 行 x 64 列のパーツに分割された画像があります。各画像は 256x256 ピクセルです。画像はすべてPNGです。これらは、「Image--.png」(たとえば「Image-3-57」) という名前です。行と列の番号付けは、1 ではなく 0 から始まります。
これを 1 つのイメージに戻すにはどうすればよいですか? 理想的には BASH とツール (私はシステム管理者です) を使用しますが、PHP も許容されます。
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
}
}
?>
これは単なるドラフトです。これらの xs と ys だけでなく、その他の詳細についてもわかりません。遅くて疲れました。