Search code examples
phpgdthumbnailsphpthumb

how to automatically copy an entire directory as thumbnails using phpthumb (or some other library)


I would like all images dropped in a directory to be copied into a separate directory as thumbnails that i can then view on my site. Right now i'm researching phpthumb, but have also downloaded wideimage and zen photo.

Thanks if you can find an exact duplicate to this, near matches may also be helpful.

Here is the script that only copies a single files:

require_once '../ThumbLib.inc.php';
//include the thumb library 
$thumb = PhpThumbFactory::create('test.jpg');
//create a new image from the targeted jpegs
$thumb->adaptiveResize(100, 100);
//resize 
$thumb->save('test.png', 'png');
//save as 'test' with the file type png
//echo "<img src='$thumb' class='thumb'>";
$thumb->show();
//print the thumbnail to the screen

Solution

  • Try

    $dir = "photos" ;
    $destination = "thumb" ;
    $images = scandir($dir);
    
    foreach ( $images as $image ) {
    
        if(is_file($image))
        {
            $ext = pathinfo ( $dir . DIRECTORY_SEPARATOR . $image, PATHINFO_EXTENSION );
            $thumb = PhpThumbFactory::create ( $dir . DIRECTORY_SEPARATOR . $image );
            $thumb->adaptiveResize ( 100, 100 );
            $thumb->save ( $destination . DIRECTORY_SEPARATOR . $image, $ext );
            $thumb->show ();
        }
    }