This tutorial will describe how to create thumbnail images on the fly using PHP while uploading a image. With uploaded of single image you can create different thumbnail with different size of same Image. Here you will Learn how to process a images and create their thumbnails.
System Requirements:
- Work for PHP only.
- GD library must be installed which you can check with phpinfo() with version of >=GD 2.0.1
- Uploading image size should be less than 2MB but if you want to increase then increase the value of "upload_max_filesize", "post_max_size" from php.ini
Code Snippets
function resize($width, $height, $imageName,$extension) { if(empty($width) || empty($height) || empty($imageName) || empty($extension)){ die('Required parameter is missing'); } $docRoot = getenv("DOCUMENT_ROOT"); /* Get original image x y */ $tmpNM = $_FILES['files']['tmp_name']; list($w, $h) = getimagesize($_FILES['files']['tmp_name']); /* calculate new image size with ratio */ $ratio = max($width / $w, $height / $h); $h = ceil($height / $ratio); $x = ($w - $width / $ratio) / 2; $w = ceil($width / $ratio); /* new file name */ $path = $docRoot . '/images/thumb/' . $imageName; /* read binary data from image file */ $imgString = file_get_contents($_FILES['files']['tmp_name']); /* create image from string */ $image = imagecreatefromstring($imgString); $tmp = imagecreatetruecolor($width, $height); imagecopyresampled($tmp, $image, 0, 0, $x, 0, $width, $height, $w, $h); $fileTypes = array('jpg', 'jpeg', 'jpe', 'png', 'bmp', 'gif'); // File extensions /* Save image */ switch ($extension) { case 'jpg': case 'jpeg': case 'jpe': imagejpeg($tmp, $path, 100); break; case 'png': imagepng($tmp, $path,0); break; case 'gif': imagegif($tmp, $path, 100); break; case 'bmp': imagewbmp($tmp, $path); break; default: exit; break; } return $path; /* cleanup memory */ imagedestroy($image); imagedestroy($tmp); }This function is able to create multiple thumbnail with different sizes of uploaded images.
How to create thumbnail of 50pxX50px image?
$w='50'; //New image width $h='50'; //New image height $imageName=$w.'_'.$h.'_'.$_FILES['files']['name']; //Uploaded file Name $imageExtensionArray = explode(".", $_FILES['files']['name']); $extension=$imageExtensionArray[1]; $this->resize($w, $h, "{$imageName}",$extension);
How to create thumbnail of 100pxX100px image?
$w='100'; //New image width $h='100'; //New image height $imageName=$w.'_'.$h.'_'.$_FILES['files']['name']; //Uploaded file Name $imageExtensionArray = explode(".", $_FILES['files']['name']); $extension=$imageExtensionArray[1]; $this->resize($w, $h, "{$imageName}",$extension);