"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