Scripts

PHP photoalbum

Omschrijving: Dit script laat toe om alle foto's, .jpg/.png/.gif weer te geven die in diezelfde map staan in een fotoalbum, alle functies: - je kan instellen hoeveel foto's er naast elkaar of bove elkaar worden weergegeven - de grote ingeven van de thumbnails die worden gemaakt (voor een snellere werking) - als er teveel foto's zijn voor op één pagina, word er automatisch een pagina bijgemaakt, in een soort van "google" systeem als u nu suft naar de locatie van de map, zouden automatisch de foto's moeten worden weergegeven maak een file aan index.php in de map waar je foto's instaan die je wild weergeven zet de volgende code in de file:

php-photoalbum
----------------------------index.php-----------------------------
<?php

$x=3; //images near eachother on a page.
$y=4; //images above eachother on a page.
$size_x=160; //size images horizontal in pixels
$size_y=120; //size images vertical in pixels
$thumb_dir='thumbnails'; //directory for the thumbnails


//resize function
function resize($filename, $dest, $width, $height, $type=''){
    if(@imagecreatefromgif($filename)){
        $img=imagecreatefromgif($filename);
        $type_r='gif';
    }
    elseif(@imagecreatefromjpeg($filename)){
        $img=imagecreatefromjpeg($filename);    
        $type_r='jpg';
    }
    elseif(@imagecreatefrompng($filename)){
        $img=imagecreatefrompng($filename);    
        $type_r='png';
    }
    elseif(@imagecreatefromwbmp($filename)){
        $img=imagecreatefromwbmp($filename);    
        $type_r='bmp';
    }
    else{
        return 'Cannot open file';    
    }
    $type=($type=='')?$type_r:'';
    $img_n=imagecreatetruecolor ($width, $height);
    imagecopyresampled($img_n, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));
    if($type=='gif'){
        imagegif($img_n, $dest);
    }
    elseif($type=='jpg'){
        imagejpeg($img_n, $dest);
    }
    elseif($type=='png'){
        imagepng($img_n, $dest);
    }
    elseif($type=='bmp'){
        imagewbmp($img_n, $dest);
    }
    Return true;
}

$a=0;
$pc=0; //picture counter
$row=0; //row counter

print'
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><h1><center>Picture Viewer</center></h1></p>
';


print'<table cellpadding="2" cellspacing="2" border="0" width="100%">';

//check directory $thumb_dir exists!
$search_dir='.';
$dp = opendir ($search_dir);
while($item=readdir($dp) AND $a!=1){
    if((is_dir($item)) AND (substr($item,0,1)!='.')){    
        if($item == $thumb_dir){$a=1;}    
    }
}
if(!$a==1){mkdir($thumb_dir);
}


//show thumbnails
if(!isset($_GET['start'])){$start=0;
}else{$start=$_GET['start'];
}

$search_dir='.';
$dp=opendir($search_dir);
rewinddir($dp);

$a=0; //images/page counter

while($item=readdir($dp)){
    if((is_file($item))AND(substr($item,0,1)!=';')){
        
        if(eregi('()(.jpg|.png|.gif)$',$item)){       //show files. .jpg/.png/.gif
        //create the thumbnail picture pad/name        
        $thumb="$thumb_dir/$item";
        //check if the thumbnail already exist, if not, create one!
        if(!file_exists($thumb)){resize($item, $thumb, $size_x, $size_y);
        }    
        $pc=$pc+1; //general picture counter
        if($pc > 0+$start AND $pc <= $x*$y+$start){
        $a=$a+1;
        print'
        <td><a href="'.$item.'" target="_self"><img src="'.$thumb.'" width="'.$size_x.'" height="'.$size_y.'"></a></td>
        ';
            if($a==$x){
                $a=0;
                $row=$row+1;
                print'</tr><tr>';}

            }
        }
    }
}

print'</tr>';
print'</table></p>';

closedir($dp);

//counting for next pages
if(!isset($_GET['start'])){$start=$x*$y;
}else{$start=$_GET['start']+$x*$y;
}

$pg=0;
echo'<center>';
while($pc > $pg*$x*$y){

$start=$pg*$x*$y;

$view=$pg+1;
if($start==$_GET['start']){print'<a href="index.php?start='.$start.'"><font color="red"><b>'.$view.'</b></font></a> | ';        
}else{
    print'<a href="index.php?start='.$start.'">'.$view.'</a> | ';    
}
$pg=$pg+1;

}
//page end
echo'</center>';
echo'</body>';
echo'</html>';
?>


 

Reacties

0
Nog geen reacties.