problems with thumbnails

Hey. I have 2 problems with thumbnails. Hope you could help to solve at least one of them :wink:

1.I made thumbnails for uploaded images that are stored in folder (they’re stored in the database as well, but these thumbnails are linked with the folder not database) and when I click on the thumbnail I want it to show the big image and some data from database that was added when the user uploaded the image (like- name and date). Now when I click on a thumbnail it shows me all the data that’s in the database- including other images as well. How to link a thumbnail that is made in folder with data from database? (thumbnails and original images have exact the same name).

  1. I used this script to create thumbnails, but it is only for .jpg images. What should I add to allow .png , .jpeg and .gif extensions as well?
    [php]/** settings **/
    $images_dir = ‘images/’;
    $thumbs_dir = ‘images_thumbs/’;
    $thumbs_width = 200;
    $images_per_row = 3;

/* function: generates thumbnail /
function make_thumb($src,$dest,$desired_width) {
/
read the source image /
$source_image = imagecreatefromjpeg($src);
$width = imagesx($source_image);
$height = imagesy($source_image);
/
find the “desired height” of this thumbnail, relative to the desired width /
$desired_height = floor($height
($desired_width/$width));
/* create a new, “virtual” image /
$virtual_image = imagecreatetruecolor($desired_width,$desired_height);
/
copy source image at a resized size /
imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
/
create the physical thumbnail image to its destination */

}

/* function: returns files from dir */
function get_files($images_dir,$exts = array(‘jpg’)) {
$files = array();
if($handle = opendir($images_dir)) {
while(false !== ($file = readdir($handle))) {
$extension = strtolower(get_file_extension($file));
if($extension && in_array($extension,$exts)) {
$files[] = $file;
}
}
closedir($handle);
}
return $files;
}

/* function: returns a file’s extension */
function get_file_extension($file_name) {
return substr(strrchr($file_name,’.’),1);
}

/** generate photo gallery **/
$image_files = get_files($images_dir);
if(count($image_files)) {
$index = 0;
foreach($image_files as $index=>$file) {
$index++;
$thumbnail_image = $thumbs_dir.$file;
if(!file_exists($thumbnail_image)) {
$extension = get_file_extension($thumbnail_image);
if($extension) {
make_thumb($images_dir.$file,$thumbnail_image,$thumbs_width);
}
}
echo ‘’;
if($index % $images_per_row == 0) { echo ‘

’; }
}
echo ‘
’;
}
else {
echo ‘

There are no images in this gallery.

’;
}

[/php]

Thanks!

For number 2 I’d look around the line that says:

[php]function get_files($images_dir,$exts = array(‘jpg’))[/php]
Note that $exts is an array :slight_smile:

Sponsor our Newsletter | Privacy Policy | Terms of Service