maelstrom писал(а):Напиши плиз как обрезать можно автоматом все сразу!
Стометровки, да и двухсотки, текущая версия GM автоматом точно не обрежет. Может в других версиях. Там ведь несложно сделать - по максимальной и минимальной координате привязки обрезать и все. Если покопаться, наверное можно скрипт для GM написать, который это будет делать. Там какой-то свой скриптовый язык есть.
maelstrom писал(а):В ручную обрезку делать каждой карты по координатам это очень запарочно.
Золотые слова, полностью согласен. Вот, плАчу, но обрезаю.
maelstrom писал(а):а в чем проблемы совмещения тайлов если их сохранять сраху в jpg?
Проблема в более сложном алгоритме сопряжения с тайлом соседней карты. А так берется jpg от соседней карты, на нее накладывается png с прозрачным слоем новой карты и это все конвертится в jpg.
workdao писал(а):и не обязательно по разным папкам можно все и сразу подгрузить
Можно и так. Если нет сомнений в надежности привязок. Я просто иногда проверяю, уточняю.
workdao писал(а):а не проще ли тогда скриптом поделится, походу вы хотите не чужом материале нажиться
Очень смешно. Нажиться на раздаче с торрентов.
Если это будет проще - вот полный скрипт. Он непричесанный, но рабочий. Если кому-нить пригодится - буду только рад.
- Код: Выделить всё
echo "PNG 2 JPG <form method=post>
<input type=hidden name=id value='$id'><input type=hidden name=id value='$id'>
<input type=hidden name=do value='1'>
<input type=text name=tbl value='sat'>
<br>X от <input type=text name=mx1> до <input type=text name=mx2>
<br>Y от <input type=text name=my1 value=> до <input type=text name=my2>
<br><input type=submit>
</form>
Для Gen Z прибавляется
";
if (!$do) die();
$dir="Sqlite";
$dh = opendir($dir);
while (false !== ($file = readdir($dh))) if (substr($file,0,1)=="Z")
{
$z=str_replace("z","",$file);
$z=str_replace("Z","",$file);
$z++;
echo "<hr>Z = $z";
$dirz=$dir."/".$file;
$dz = opendir($dirz);
while (false !== ($filez = readdir($dz))) if (substr($filez,0,1)!=".")
{
$x=str_replace("x","",$filez);
echo "<li>Y = $x";
$dirx=$dirz."/".$filez;
$dx = opendir($dirx);
while (false !== ($filex1 = readdir($dx))) if (substr($filex1,0,1)!=".") if (strpos($filex1,".png"))
{
$y=str_replace("y","",$filex1);
$y=str_replace(".jpg","",$y);
$y=str_replace(".png","",$y);
$y=str_replace(".kml","",$y);
$f2=$dirx."/".$filex1;
//echo "<br>X = $y , file= ".$f2;
$fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
//$img=bzcompress($img, 9);
//unlink($f2);
if ($mx1>0) if ($y<$mx1) continue;
if ($mx2>0) if ($y>$mx2) continue;
if ($my1>0) if ($x<$my1) continue;
if ($my2>0) if ($x>$my2) continue;
$key=$z."_".$y."_".$x;
$sel="insert into $tbl(id,kx,ky,kz,map) values ('$key',$y,$x,$z,:map)";
echo "<br>".$sel;
$sel1="select map from $tbl where id='".$key."'";
$row=array();
foreach (@$db->query("select map from $tbl where id='".$key."'") as $r) $row=$r;
if (sizeof($row))
{
echo " ЕСТЬ!";
$fj1="tmp/tj.jpg";
$fd=fopen($fj1, "w"); fwrite($fd,$row["map"]); fclose ($fd); @chmod($fd,0777);
$img1 = imagecreatefromjpeg($fj1);
$img2 = imagecreatefrompng($f2);
imagecopy($img1, $img2, 0,0,0,0,256,256);
$fOut="tmp/".$key.".jpg";
imagejpeg($img1,$fOut,85);
$f2=$fOut; $fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
unlink($fj1);
unlink($f2);
// die();
}
else
{
$img2 = imagecreatefrompng($f2);
$fOut="tmp/".$key.".jpg";
imagejpeg($img2,$fOut,85);
$f2=$fOut; $fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
unlink($f2);
}
$db->query("delete from $tbl where id='$key' ");
$sth = $db->prepare($sel);
$sth->bindParam(':map',$img,PDO::PARAM_LOB);
$sth->execute();
}
closedir($dx);
}
closedir($dz);
}
closedir($dh);
echo "<li>OK";