Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Nov 2007
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question Need Help on a php image gallery

    I use the Micro Photo Gallery the script finds all .jpg files and creates thumbnails if there isn't one and links the thumbnail with the jpg file.

    I will use this script on a site, and I don't want to upload the same gallery on the other site, I just want the script to read from the folder of my first site the files. The original script only reads from the folder that is in.

    Here is the script:
    Code:
    <?php
    /*************************************************
     * Micro Photo Gallery
     *
     * Version: 1.0
     * Date: 2007-04-05
     *
     * Usage:
     * Just copy these files into your image folder
     *
     ****************************************************/
    
     $columns     = 5;
     $thmb_width  = 120;
     $thmb_height = 80;
    
    function resizeImage($originalImage,$toWidth,$toHeight){
       
        // Get the original geometry and calculate scales
        list($width, $height) = getimagesize($originalImage);
        $xscale=$width/$toWidth;
        $yscale=$height/$toHeight;
       
        // Recalculate new size with default ratio
        if ($yscale>$xscale){
            $new_width = round($width * (1/$yscale));
            $new_height = round($height * (1/$yscale));
        }
        else {
            $new_width = round($width * (1/$xscale));
            $new_height = round($height * (1/$xscale));
        }
        // Resize the original image
        $imageResized = imagecreatetruecolor($new_width, $new_height);
        $imageTmp     = imagecreatefromjpeg ($originalImage);
        imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    
        return $imageResized;
    }
    
    function generateThumbnails(){
       global $thmb_width,$thmb_height;
       
       // Open the actual directory
       if ($handle = opendir(".")) {
          // Read all file from the actual directory
          while ($file = readdir($handle))  {
             // Check whether tha actual item is a valid file
             if (is_file($file)){
                // Check whether the actual image is a thumbnail
                   if (strpos($file,'_th.jpg')){
                      $isThumb = true;
                   } else {
                      $isThumb = false;
                   }
                
                   if (!$isThumb) {
                      // Process the file string
                      $dirName  = substr($file,0,strpos($file,basename($file)));
                      if (strlen($dirName) < 1) $dirName = '.';
                      $fileName = basename($file);
                      $fileMain = substr($fileName,0,strrpos($fileName,'.'));
                      $extName  = substr($fileName,strrpos($fileName,'.'),
                                     strlen($fileName)-strrpos($fileName,'.'));
                     
                      // Check if the actual file is a jpeg image
                      if (($extName == '.jpg') || ($extName == '.jpeg')){
                       $thmbFile = $dirName.'/'.$fileMain.'_th.jpg';
                       // If a thumbnail dosn't exists tahn create a new one
                       if (!file_exists($thmbFile)){
                          imagejpeg(resizeImage($file,$thmb_width,$thmb_height),$thmbFile,80);
                       }
                   }
                   }
                }
             }
       }
       
    }
    
    function getNormalImage($file){
       $base = substr($file,0,strrpos($file,'_th.jpg'));
       if (file_exists($base.'.jpg')) return $base.'.jpg';
       elseif (file_exists($base.'.jpeg')) return $base.'.jpeg';
       else return "";
    }
    
    function displayPhotos(){
       global $columns;
       
       generateThumbnails();
       $act = 0;
       // Open the actual directory
       if ($handle = opendir(".")) {
          // Read all file from the actual directory
          while ($file = readdir($handle))  {
             // Check whether tha actual item is a valid file
             if (is_file($file)){
                // Check whether the actual image is a thumbnail
                   if (strpos($file,'_th.jpg')){
                   ++$act;
                   if ($act > $columns) {
                      echo '</tr><tr><td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/>[/url]</td>';   
                      $act = 1;
                   } else {
                      echo '<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/>[/url]</td>';   
                   }
                      
                   }
                }
          }
       }   
    }
    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
       <title>Micro Photo Gallery</title>
       <link href="style/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
      <div id="main">
        <div class="caption">Micro Photo Gallery</div>
          <table align="center"><tr>     
              <?php displayPhotos(); ?>
          </table>      
              
       <div id="source">Micro Photo Gallery 1.0</div>
      </div>
    </body>

  • #2
    Master Coder
    Join Date
    Jun 2003
    Location
    Cottage Grove, Minnesota
    Posts
    9,549
    Thanks
    8
    Thanked 1,095 Times in 1,086 Posts
    Not sure if this works absolute (to another URL)... you might be out of luck.

    function resizeImage($originalImage,$toWidth,$toHeight){

    $originalImage="http://www.myothersite.com/images/".$originalImage;

    I think you'll get a blank image because GD will fail.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •