stevehart808 Posted November 26, 2008 Share Posted November 26, 2008 Hi everyone, Any ideas how to change this code so I can have a square thumbnails instead of always the same width but not height? Thanks function CreateSiteThumbnail($srcFile, $destFile, $width, $quality = 100) { $thumbnail = ''; if (file_exists($srcFile) && isset($destFile)) { $size = getimagesize($srcFile); $w = number_format($width, 0, ',', ''); $h = number_format(($size[1] / $size[0]) * $width, 0, ',', ''); $thumbnail = CopySiteImage($srcFile, $destFile, $w, $h, $quality); } // return the thumbnail file name on sucess or blank on fail return basename($thumbnail); } /* Copy an image to a destination file. The destination image size will be $w X $h pixels */ function CopySiteImage($srcFile, $destFile, $w, $h, $quality = 100) { $tmpSrc = pathinfo(strtolower($srcFile)); $tmpDest = pathinfo(strtolower($destFile)); $size = getimagesize($srcFile); if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg") { $destFile = substr_replace($destFile, 'jpg', -3); $dest = imagecreatetruecolor($w, $h); //imageantialias($dest, TRUE); } elseif ($tmpDest['extension'] == "png") { $dest = imagecreatetruecolor($w, $h); //imageantialias($dest, TRUE); } else { return false; } switch($size[2]) { case 1: //GIF $src = imagecreatefromgif($srcFile); break; case 2: //JPEG $src = imagecreatefromjpeg($srcFile); break; case 3: //PNG $src = imagecreatefrompng($srcFile); break; default: return false; break; } imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); switch($size[2]) { case 1: case 2: imagejpeg($dest,$destFile, $quality); break; case 3: imagepng($dest,$destFile); } return $destFile; } // ------ // Link to comment https://forums.phpfreaks.com/topic/134346-solved-square-thumbnail-php/ Share on other sites More sharing options...
kenrbnsn Posted November 26, 2008 Share Posted November 26, 2008 If you want the height of the thumbnail to be the same as the width, just set $h to $w. BTW, why are you using number_format() with a comma parameter. If that ever happens (i.e. $width > 1000) your code will break since php doesn't like to do numerical calculations on number containing commas. <?php function CreateSiteThumbnail($srcFile, $destFile, $width, $quality = 100) { $thumbnail = ''; if (file_exists($srcFile) && isset($destFile)) { $size = getimagesize($srcFile); $w = number_format($width, 0, '', ''); $h = $w; $thumbnail = CopySiteImage($srcFile, $destFile, $w, $h, $quality); } // return the thumbnail file name on sucess or blank on fail return basename($thumbnail); } ?> Ken Link to comment https://forums.phpfreaks.com/topic/134346-solved-square-thumbnail-php/#findComment-699445 Share on other sites More sharing options...
stevehart808 Posted November 26, 2008 Author Share Posted November 26, 2008 Thanks so much for your help. I'll make those changes now! Steve Link to comment https://forums.phpfreaks.com/topic/134346-solved-square-thumbnail-php/#findComment-699447 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.