"Morten Graae" <ikke til post> wrote in message
news:14h76vcdo2lh20lg47hc2kqm9rt5gsl7aj@4ax.com...
> On Mon, 3 Mar 2003 21:59:48 +0100, "peet_dk" <nospam> wrote:
>
> >hvis jeg har en mappe eks. temp/img så kunne jeg godt tænke mig en smart
> >index.php man kunne putte i mappen også viste den alle de billeder der lå
i
> >den mappe hvor man havde lagt index.php filen. Kan det lade sig gøre?
> Det kan fint lade sig gøre
>
Jeg har lavet nedenstående stykke php kunst som måske også kan bruges - den
genererer automatisk thumbnails og smider disse i et cachedir og den viser
også exif informationer om de enkelte billeder osv. (via imagemagick).
bemærk det kun virker med jpg billeder.
<?
// vis thumbnails hvis thumb == "yes"
if($thumb == "yes") {
//definer stier til jpegs og nuværende sti
$path = ereg_replace("\n","",`pwd`);
$jpeg = $path .'/'. $HTTP_GET_VARS['img'];
// definer thumb / cache filnavn
$thumb = $path .'/thumb_'. $HTTP_GET_VARS['img'];
$cache = md5($thumb);
// lav thumbsnails og kopier til cashe dir hvis IKKE den findes i forvejen
if(!file_exists("/usr/local/www/data-vvvvvv/cache/$cache")) {
@exec("/usr/local/bin/convert -size $scalex$scale -scale $scalex$scale
+profile \"*\" $jpeg /usr/local/www/data-vvvvvv/cache/$cache");
}
// send headers
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
// tjeck om thumb allerede ER cashet
include("/usr/local/www/data-vvvvvv/cache/$cache");
exit;
}
// send headers
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
<html>
<head>
<title>Billede index og exif information:</title>
<style type="text/css">
body
{
font-family: verdana;
font-size: xx-small; color: #000000;
background-color: #222222;
}
a
{
font-family: verdana;
font-size: xx-small; color: #777777;
}
h4
{
font-family: verdana;
color: #777777;
}
a:link
{
font-family: verdana;
font-weight: bolder;
font-size: xx-small; color: #000000;
}
a:visited
{
font-family: verdana;
font-size: xx-small; color: #000000;
}
table
{
empty-cells: show;
font-family: verdana;
font-size: xx-small;
padding: 8px;
}
td
{
empty-cells: show;
padding: 8px;
}
tr
{
empty-cells: show;
}
</style>
</head>
<body background=#884477 link=#000000>
<?php
$path = ereg_replace("\n","",`pwd`);
if(isset($rotate)) {
if($angle=="left") {
system("/usr/local/bin/mogrify -rotate -90 $path/$file");
}
if($angle == "right") {
system("/usr/local/bin/mogrify -rotate 90 $path/$file");
}
}
print "<center><h4>billede index og exif information</h4></center>";
print "<table align=center cellspacing=10><tr>";
if($dir=opendir($path)){
while($file=readdir($dir)){
if('.'!==$file || '..'!==$file) {
if(!is_dir($path . "/" . $file)) {
if(ereg(".jpg",$file) AND !ereg("thumb_",$file)) {
$a=$a+1;
if(isset($colums)) {
$tal = ($a/$colums);
} else {
$tal = ($a/3);
}
if(!isset($scale)) {
$scale = 200;
}
print("<td align=center valign=center bgcolor=#888888>" . $file . " - "
.. filesize("$path/$file")/1000 . "kb<br><br><a href=\"$file\"><img
src=\"index.php?thumb=yes&img=$file&scale=$scale\" border=1
alt=\"$file\"></a>");
print "<br><center><table width=100%><tr><td align=center><a
href=$PHP_SELF?file=$file&rotate=yes&angle=left><<<</a></td>";
print "<td align=center><a
href=$PHP_SELF?file=$file&rotate=yes&angle=right>>>></a></td></tr></table></
center>";
$exif = read_exif_data("$path/$file",0,true);
foreach($exif as $key=>$section) {
foreach($section as $name=>$val) {
if($name == "ExposureTime") {
print "<br>Lukkertid: $val";
} elseif ($name == "DateTimeOriginal") {
print "<br>Dato: $val";
} elseif ($name == "Flash") {
print "<br>Flash:";
if($val == 1) {
print " ja";
} else {
print " nej";
}
} elseif ($name == "ApertureFNumber") {
print "<br>Blænde: $val";
}
}
}
print "</td>";
if($tal == round($tal)) {
print "</tr><tr>";
}
}
}
}
}
closedir($dir);
}
print "</tr></table><br><br><h4>ialt $a billeder.</h4>";
?>
<form action=<? print $PHP_SELF; ?> method=get>
antal kolonner:
<select name=colums>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
skalering af original:
<select name=scale>
<option value="100">100</option>
<option value="150">150</option>
<option value="175">175</option>
<option value="200">200</option>
<option value="225" selected>225</option>
<option value="250">250</option>
</select>
<input type=submit value=reindexer>
</form>
</body>
</html>
resultatet kan ses på
www.vvvvvv.dk/brian