Scripts
Picture Navigator
Ik moest even kijken op een route planner hoe je in parijs kon komen. Ik zag dat ze een kaartje lieten zien met zoom in en zoom uit enz. ik dacht dat kan je vast ook met php doen dus ik ging het maken om door grote plaatjes te navigeren. Tips zijn welkom! En als je fouten vind mail me dan even. Han De plaatjes zijn op deze url te vinden! http://phphulp.ph.funpic.org/navi/img.zip Note: Ik werd gek van haakjes en er zitten denk ik dubbele vars in
picture-navigator
================== conf.php============================= al het 'denk' werk
<?PHP
// config
// cfg -------------
$cfg['width'] = '300'; // breedte van het vlak
$cfg['height'] = '300'; // hoogte van het vlak
$cfg['pl'] = 'f22.jpg'; // het plaatje
$cfg['stap'] = '150'; // pixels perkeer
$cfg['klein'] = '1'; // 1 voor wel miniatuur en 0 voor niet
$cfg['z'] = '0.5'; // Per keer uitzoomen
//---------------------------------------------- alle functies
class func {
// inladen
function res($filename){ // van img2pix
if(@imagecreatefromjpeg($filename)){
return imagecreatefromjpeg($filename);
}
elseif(@imagecreatefromgif($filename)){
return imagecreatefromgif($filename);
}
elseif(@imagecreatefrompng($filename)){
return imagecreatefrompng($filename);
}
elseif(@imagecreatefromwbmp($filename)){
return imagecreatefromwbmp($filename);
}
}
function size($pl) {
$siz = getimagesize($pl);
return $siz;
}
//------------ zoom
function map($pl,$w,$h,$x1,$y1,$keer,$s) {
$xas = ($keer >1) ? $x1-(($w/2)*($keer-1)) : $x1; // stomme () :P
$yas = ($keer >1) ? $y1-(($h/2)*($keer-1)) : $y1;
$siz = $this->size($pl);
$ima = $this->res($pl);
$im = imagecreatetruecolor($w,$h);
$bg = imagecolorallocate($im,0,0,0);
$image = imagecopyresized($im,$ima,0,0,$xas,$yas,$w,$h,($w*$keer),($h*$keer));
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
imagedestroy($ima);
}
function mini($pl,$x1,$y1,$w1,$h1,$k) {
$x = ($k >1) ? $x1-(($w1/2)*($k-1)) : $x1;
$y = ($k >1) ? $y1-(($h1/2)*($k-1)) : $y1;
$h = $h1*$k;
$w = $w1*$k;
$ima = $this->res($pl);
$siz = $this->size($pl);
$g = ($siz[0] > 1000 || $siz[1] > 1000) ? 10 : 5;
$wid = round($siz[0]/$g,0);
$hei = round($siz[1]/$g,0);
//---------------------------------
$img = imagecreatetruecolor($wid,$hei);
imagecopyresampled($img,$ima,0,0,0,0,$wid,$hei,$siz[0],$siz[1]);
$color1 =imagecolorallocate($img,255,119,1);
imagerectangle($img,round($x/$g,0),round($y/$g,0),round(($x+$w)/$g,0),round(($y+$h)/$g,0),$color1);
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
}
//einde class
}
$data = new func;
?>
===================== map.php ================== Aanroep bestand
<?PHP
include("conf.php");
//--------------
$siz = $data->size($cfg['pl']);
$x = (isset($_GET['x']) && $_GET['x'] >= 0 && ($_GET['x']+$cfg['stap']) <= $siz[0]) ? $_GET['x'] : '0';
$y = (isset($_GET['y']) && $_GET['y'] >= 0 && ($_GET['y']+$cfg['stap']) <= $siz[1]) ? $_GET['y'] : '0';
$k = (isset($_GET['k']) && $_GET['k'] >0) ? $_GET['k'] : '1';
if(is_numeric($_GET['k']) && is_numeric($_GET['x']) && is_numeric($_GET['y']) && $_GET['v'] == 'v') {
$data->map($cfg['pl'],$cfg['width'],$cfg['height'],$x,$y,$k,$cfg['stap']);
} elseif(is_numeric($_GET['k']) && is_numeric($_GET['x']) && is_numeric($_GET['y']) && $_GET['v'] == 'k' && $cfg['klein'] == 1) {
$data->mini($cfg['pl'],$x,$y,$cfg['width'],$cfg['height'],$k);
}
?>
==================== index.php =================== opmaak
<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Picture viewer</title><head>
<style>
BODY {
font-family:Arial,Verdana;
font-size:10px;
background-color:#ffffff;
margin-left:0px;
margin-top:0px;
}
INPUT, SELECT, TEXTAREA {
border: 2px solid #DADBDC;
color:black;
font-size : 10px;
font-family : Arial, verdana;
}
TABLE.MAIN {
border: 2px solid #DADBDC;
font-size : 14px;
font-family : Arial, verdana;
color:black;
text-decoration: bold;
}
A:link {color: black; font-size: 13px; font-family : Arial, verdana; text-decoration: bold;}
A:active {color: black; font-size: 13px; font-family : Arial, verdana; text-decoration: bold;}
A:visited {color: black; font-size: 13px; font-family : Arial, verdana; text-decoration: bold;}
A:hover {color: black; font-size: 13px; font-family : Arial, verdana; text-decoration: bold;}
</style></head><body><center><br />
<?PHP
include("conf.php");
//------------
$siz = getimagesize($cfg['pl']);
$x = (isset($_GET['x']) && $_GET['x'] >= 0 && ($_GET['x']+$cfg['stap']) <= $siz[0]) ? $_GET['x'] : 0;
$y = (isset($_GET['y']) && $_GET['y'] >= 0 && ($_GET['y']+$cfg['stap']) <= $siz[1]) ? $_GET['y'] : 0;
$k = (isset($_GET['k']) && $_GET['k'] >0) ? $_GET['k'] : 1;
$s = $cfg['stap']*$k;
$ke = ($k-1 >= 1) ? $k-$cfg['z'] : 1;
$minx = ($x <=0 || ($x-$S) <= 0) ? 0 : ($x-$s);
$plux = ($x > $siz[0] || ($x+$s) > $siz[0]) ? $x : ($x+$s);
$miny = ($y <=0 || ($y-$S) <= 0) ? 0 : ($y-$s);
$pluy = ($y > $siz[1] || ($y+$s) > $siz[1]) ? $y : ($y+$s);
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// form
// opmaak
echo "<table><tr><th colspan=2></th></tr>";
echo "<tr><td>";
echo "<table cellpadding=0 cellspacing=0 CLASS='main'>";
echo "<tr style='height: 17px;' ><td width='17' >";
//links boven
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$minx."&y=".$miny."&k=".$k."'><img src='img/l_b.gif' border=0 /></a>";
echo "</td><td align='center'>";
//boven
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$x."&y=".$miny."&k=".$k."'><img src='img/b.gif' border=0 /></a>";
echo "</td><td width='17'>";
//rechts boven
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$plux."&y=".$miny."&k=".$k."'><img src='img/r_b.gif' border=0 /></a>";
echo "</td></tr>";
echo "<tr><td>";
// links
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$minx."&y=".$y."&k=".$k."'><img src='img/l.gif' border=0 /></a>";
echo "</td><td>"; // midden
echo "<img src='map.php?x=".$x."&y=".$y."&k=".$k."&v=v' width='300' height='300' alt='Map'/>";
echo "</td><td>";
// rechts
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$plux."&y=".$y."&k=".$k."'><img src='img/r.gif' border=0 /></a>";
echo "</td></tr>";
echo "<tr style='height: 17px;' ><td>";
// links onder
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$minx."&y=".$pluy."&k=".$k."'><img src='img/l_o.gif' border=0 /></a>";
echo "</td><td align='center'>";
// onder
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$x."&y=".$pluy."&k=".$k."'><img src='img/o.gif' border=0 /></a>";
echo "</td><td>";
// rechts onder
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$plux."&y=".$pluy."&k=".$k."'><img src='img/r_o.gif' border=0 /></a>";
echo "</td></tr>";
//zoom
echo "<table>";
echo "<table width='".$cfg['width']."'><tr><td align=center><a href='".$_SERVER['PHP_SELF']."?x=".$x."&y=".$y."&k=".($k+$cfg['z'])."'>Zoom Uit</a> - <a href='".$_SERVER['PHP_SELF']."?x=".$x."&y=".$y."&k=".$ke."'>Zoom In</a> - ";
echo "<a href='".$_SERVER['PHP_SELF']."?x=".$x."&y=".$y."&k=1'>Reset</a></td></tr>
</table></td><td><table class='main'><tr><td align=center>Kaart:</td></tr>";
if($cfg['klein'] == 1) {
echo "</table></td><td><table class='main'><tr><td align=center>Kaart:</td></tr>";
echo "<tr><td><img src='map.php?x=".$x."&y=".$y."&k=".$k."&v=k' /></td></tr>";
echo "</table></td></tr>";
}
echo "</table></td></tr>";
// anders zooi
?>
</center></body></html>
Reacties
0