Hey. I have 2 problems with thumbnails. Hope you could help to solve at least one of them
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).
- 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!