Scripts
myPolaroid foto album
Dit is een leuke basis voor een foto album. De foto's worden als polaroids getoond. De afbeeldingen kun je aanklikken om de orginelen te bekijken. In een tekstbestandje kun je onderschriften bij de plaatjes maken. Het dalek.ttf is een gewoon true type fontje. Te vinden in de polaroid.php. Bijv. op 1001fonts.com kun je een andere downloaden en er bij de scripts plaatsen.
mypolaroid-foto-album
index.php:
[code]<?php
$bg = "ffffff";
$descr_file = "images/descr.txt";
$maximg = 8; // images per page
// check if file for image descriptions exists
// create one if not so
if (!file_exists($descr_file)) {
$fo = @fopen($descr_file, "w");
$h = opendir("images");
while ($photo = readdir($h)) {
if ($photo != "." && $photo != ".." && $photo != "descr.txt") {
fputs ($fo, $photo.":Voorbeeld tekst\n");
}
}
closedir($h);
fclose($fo);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>myPolaroids</title>
<style type="text/css">
body {
margin: 20px;
padding: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.7em;
color: #000000;
background: #ffffff;
}
a:link, a:active {
color: #000000;
}
a:hover, a:visited {
color: #666666;
}
</style>
<script language="javascript">
var imgHtml = new Array();
<?php
// open description file and put images in a array
$fi = @fopen($descr_file, "r");
$i = 0;
while (!feof($fi)) {
$data = explode(":",fgets($fi, 1024));
$photo = $data[0];
$angle = rand(-45, 45);
if ($data[1] == "") {
$text = $photo;
} else {
$text = trim($data[1]);
}
if ($data[1] != "") {
$i++;
// get image size for popup
$img_data = getImageSize("images/".$photo);
$width = $img_data[0];
$height = $img_data[1];
// images to display
echo " imgHtml[".$i."] = \"<a href=\\\"javascript:;\\\" onclick=\\\"window.open('popup_img.php?name=images/".$photo."','popup','width=".($width+20).",height=".($height+40)."');\\\"><img src=\\\"polaroid.php?bg=".$bg."&photo=images/".$photo."&x=".$x."&y=".$y."&angle=".$angle."&text=".$text."\\\" alt=\\\"".$text."\\\" border=\\\"0\\\"></a>\";\n";
}
$totalimg = $i;
}
fclose($fi);
?>
// display function
function displayImages(start, end) {
var dispHtml = "";
var i;
var j = 0;
for (i = start; i < start+end; i++) {
j++;
dispHtml += imgHtml[i];
if (j == 4) {
dispHtml += "<br>";
j = 0;
}
}
document.getElementById('polaroids').innerHTML = dispHtml;
}
</script>
</head>
<body>
<h1>myPolaroids</h1>
<p>
<a href="edit_descr.php">Edit image text here!</a>
</p>
<?php
$pages = round($totalimg / $maximg);
echo "Pagina | ";
for ($i = 1; $i < $pages; $i++) {
echo "<a href=\"javascript:displayImages(".(($i*$maximg)-$maximg+1).",".$maximg.");\">".$i."</a> | ";
}
?>
<div id="polaroids"> </div>
<script language="javascript">
// display first set of images
displayImages(1,<?php echo $maximg; ?>);
</script>
</body>
</html>[/code]
polaroid.php:
[code]<?php
$color = $_GET["bg"];
$photo = $_GET["photo"];
$angle = $_GET["angle"];
$text = $_GET["text"];
$r = hexdec(substr($color, 0, 2));
$g = hexdec(substr($color, 2, 2));
$b = hexdec(substr($color, 4, 2));
$info = getimagesize(stripslashes(str_replace(" ", "%20", $photo)));
$text = trim(strip_tags(stripslashes(str_replace("_", " ", $text))));
$polaroid = imagecreatetruecolor(123, 150);
$bg = imagecolorallocate($polaroid, $r, $g, $b);
imagefill($polaroid, 0, 0, $bg);
$scale = ($info[0] > $info[1]) ? (100 / $info[1]) : (100 / $info[0]);
if ($info[2] == 1) {
$photo = imagecreatefromgif(stripslashes(str_replace("||", "%20", $photo)));
} elseif ($info[2] == 2) {
$photo = imagecreatefromjpeg(stripslashes(str_replace("||", "%20", $photo)));
} elseif ($info[2] == 3) {
$photo = imagecreatefrompng(stripslashes(str_replace("||", "%20", $photo)));
}
$tmp = imagecreatetruecolor(100, 100);
imagecopyresampled($tmp, $photo, 0, 0, 0, 0, floor($info[0] * $scale), floor($info[1] * $scale), $info[0], $info[1]);
imagecopy($polaroid, $tmp, 10, 9, 0, 0, 100, 100);
$frame = imagecreatefrompng("frame.png");
imagecopy($polaroid, $frame, 0, 0, 0, 0, 121, 150);
$text = wordwrap($text, 25, "||", 1);
$text = explode("||", $text);
$black = imagecolorallocate($polaroid, 0, 0, 0);
$text_pos_y = array(123, 125, 132);
for ($i = 0; $i < 3; $i++) {
$width = imagettfbbox(10, 0, "dalek.ttf", $text[$i]);
$text_pos_x = (110 - $width[2])/2 + 20;
imagettftext($polaroid, 7, 0, $text_pos_x, $text_pos_y[$i], $black, "dalek.ttf", $text[$i]);
}
$polaroid = imagerotate($polaroid, $angle, $bg);
header("Content-type: image/jpeg");
imagejpeg($polaroid , "", 100);
imagedestroy($polaroid);
?>[/code]
popup_img.php:
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>myPolaroids - Popup</title>
</head>
<style type="text/css">
body {
margin: 10px;
padding: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.7em;
color: #000000;
background: #ffffff;
}
a:link, a:active {
color: #000000;
}
a:hover, a:visited {
color: #666666;
}
</style>
<body>
<div align="center">
<?php echo "<img src=\"".$name."\">"; ?><br>
<a href="javascript:window.close();">close</a>
</div>
</body>
</html>[/code]
edit_descr.php:
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Polaroid-Generator</title>
<style type="text/css">
body {
margin: 20px;
padding: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.7em;
color: #000000;
background: #ffffff;
}
a:link, a:active {
color: #000000;
}
a:hover, a:visited {
color: #666666;
}
</style>
</head>
<body>
<h1>myPolaroids - Edit image text</h1>
<p>
<a href="index.php">back to myPolaroids...</a>
</p>
<?php
$descr_file = "images/descr.txt";
if ($_POST["submit"] == "save") {
$postdata = $_POST;
$fo = @fopen($descr_file, "w");
for ($i = 1; $i < $_POST["count"]+1; $i++) {
$file = $postdata["file".$i];
$data = $postdata["data".$i];
//echo $file.":".$data."\n";
fputs($fo, $file.":".$data."\n");
}
fclose($fo);
}
?>
<form action="edit_descr.php" method="post">
<?php
// check if file for image descriptions exists
// create one if not so
if (!file_exists($descr_file)) {
$fo = @fopen($descr_file, "w");
$h = opendir("images");
while ($photo = readdir($h)) {
if ($photo != "." && $photo != ".." && $photo != "descr.txt") {
fputs ($fo, $photo.":Voorbeeld tekst\n");
}
}
closedir($h);
fclose($fo);
}
// open description file and display images
$fi = @fopen($descr_file, "r");
$i = 0;
while (!feof($fi)) {
$data = explode(":",fgets($fi, 1024));
if ($data[1] != "") {
$i++;
echo "<input type=\"hidden\" name=\"file".$i."\" value=\"".$data[0]."\">";
echo $data[0]." <input type=\"text\" value=\"".$data[1]."\" name=\"data".$i."\"><br>\n";
}
}
fclose($fi);
echo "<input type=\"hidden\" name=\"count\" value=\"".$i."\">\n";
?>
<input type="submit" name="submit" value="save">
</form>
</body>
</html>[/code]
Reacties
0