Bigbruin.com
Home :: Reviews & Articles ::
Forum :: Info :: :: Facebook :: Youtube :: RSS Feed
Search  :: Register :: Log in
View Single Post  Topic: Script makes thumbnails for images in a folder 
Author Message
IceNine
Rated XXX


PostPosted: Wed, 01 Dec 2004 15:07:36    Post Subject: Reply with quote

I found this... Seems like it would do what you want.

Code:
<?php
$gd2=checkgd();
$pics=directory("pics","jpg,JPG,JPEG,jpeg,png,PNG");
$pics=ditchtn($pics,"tn_");
if ($pics[0]!=""){
   foreach ($pics as $p){
      createthumb("pics/".$p,"thumbs/tn_".$p,150,150);
   }
}
/*
   Function checkgd()
   checks the version of gd, and returns "yes" when it's higher than 2
*/
function checkgd(){
   $gd2="";
   ob_start();
   phpinfo(8);
   $phpinfo=ob_get_contents();
   ob_end_clean();
   $phpinfo=strip_tags($phpinfo);
   $phpinfo=stristr($phpinfo,"gd version");
   $phpinfo=stristr($phpinfo,"version");
   preg_match('/\d/',$phpinfo,$gd);
   if ($gd[0]=='2'){$gd2="yes";}
   return $gd2;
}

/*
   Function ditchtn($arr,$thumbname)
   filters out thumbnails
*/
function ditchtn($arr,$thumbname){
   foreach ($arr as $item){
      if (!preg_match("/^".$thumbname."/",$item)){$tmparr[]=$item;}
   }
   return $tmparr;
}

/*
   Function createthumb($name,$filename,$new_w,$new_h)
   creates a resized image
   variables:
   $name      Original filename
   $filename   Filename of the resized image
   $new_w      width of resized image
   $new_h      height of resized image
*/   
function createthumb($name,$filename,$new_w,$new_h){
   global $gd2;
   $system=explode(".",$name);
   if (preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);}
   if (preg_match("/png/",$system[1])){$src_img=imagecreatefrompng($name);}
   $old_x=imageSX($src_img);
   $old_y=imageSY($src_img);
   if ($old_x > $old_y) {
      $thumb_w=$new_w;
      $thumb_h=$old_y*($new_h/$old_x);
   }
   if ($old_x < $old_y) {
      $thumb_w=$old_x*($new_w/$old_y);
      $thumb_h=$new_h;
   }
   if ($old_x == $old_y) {
      $thumb_w=$new_w;
      $thumb_h=$new_h;
   }
   if ($gd2==""){
         $dst_img=ImageCreate($thumb_w,$thumb_h);
         imagecopyresized($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
   }else{
      $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
      imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
   }
   if (preg_match("/png/",$system[1])){
      imagepng($dst_img,$filename);
   } else {
      imagejpeg($dst_img,$filename);
   }
   imagedestroy($dst_img);
   imagedestroy($src_img);
}

/*
        Function directory($directory,$filters)
        reads the content of $directory, takes the files that apply to $filter
      and returns an array of the filenames.
        You can specify which files to read, for example
        $files = directory(".","jpg,gif");
                gets all jpg and gif files in this directory.
        $files = directory(".","all");
                gets all files.
*/
function directory($dir,$filters){
   $handle=opendir($dir);
   $files=array();
   if ($filters == "all"){while(($file = readdir($handle))!==false){$files[] = $file;}}
   if ($filters != "all"){
      $filters=explode(",",$filters);
      while (($file = readdir($handle))!==false) {
         for ($f=0;$f<sizeof($filters);$f++):
            $system=explode(".",$file);
            if ($system[1] == $filters[$f]){$files[] = $file;}
         endfor;
      }
   }
   closedir($handle);
   return $files;
}
?>
View user's profile Send private message

Contact Us :: On Facebook :: On Youtube :: Newsletter :: RSS Feed :: FAQ :: Links :: Sponsors :: Privacy Policy
Copyright © 2000 - 2023 Bigbruin.com - All rights reserved