image handling
|image upload and resize
this little script resizes your uploaded image on the fly and saves it as thumbnail.
respects aspect ratio and doesn't distort your image
full source of image upload and resize [ line 1 - 57 ] | download image upload and resize
| 1 | <?php |
| 2 | if(isset($_POST['Submit'])) |
| 3 | { |
| 4 | $size = 150; // the thumbnail height |
| 5 | $filedir = 'pics/'; // the directory for the original image |
| 6 | $thumbdir = 'pics/'; // the directory for the thumbnail image |
| 7 | $prefix = 'small_'; // the prefix to be added to the original name |
| 8 | $maxfile = '2000000'; |
| 9 | $mode = '0666'; |
| 10 | $userfile_name = $_FILES['image']['name']; |
| 11 | $userfile_tmp = $_FILES['image']['tmp_name']; |
| 12 | $userfile_size = $_FILES['image']['size']; |
| 13 | $userfile_type = $_FILES['image']['type']; |
| 14 | if (isset($_FILES['image']['name'])) |
| 15 | { |
| 16 | $prod_img = $filedir.$userfile_name; |
| 17 | $prod_img_thumb = $thumbdir.$prefix.$userfile_name; |
| 18 | move_uploaded_file($userfile_tmp, $prod_img); |
| 19 | chmod ($prod_img, octdec($mode)); |
| 20 | $sizes = getimagesize($prod_img); |
| 21 | $aspect_ratio = $sizes[1]/$sizes[0]; |
| 22 | if ($sizes[1] <= $size) |
| 23 | { |
| 24 | $new_width = $sizes[0]; |
| 25 | $new_height = $sizes[1]; |
| 26 | }else{ |
| 27 | $new_height = $size; |
| 28 | $new_width = abs($new_height/$aspect_ratio); |
| 29 | } |
| 30 | $destimg=ImageCreateTrueColor($new_width,$new_height) |
| 31 | or die('Problem In Creating image'); |
| 32 | $srcimg=ImageCreateFromJPEG($prod_img) |
| 33 | or die('Problem In opening Source Image'); |
| 34 | if(function_exists('imagecopyresampled')) |
| 35 | { |
| 36 | imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) |
| 37 | or die('Problem In resizing'); |
| 38 | }else{ |
| 39 | Imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) |
| 40 | or die('Problem In resizing'); |
| 41 | } |
| 42 | ImageJPEG($destimg,$prod_img_thumb,90) |
| 43 | or die('Problem In saving'); |
| 44 | imagedestroy($destimg); |
| 45 | } |
| 46 | echo ' |
| 47 | <a href="'.$prod_img.'"> |
| 48 | <img src="'.$prod_img_thumb.'" width="'.$new_width.'" heigt="'.$new_height.'"> |
| 49 | </a>'; |
| 50 | }else{ |
| 51 | echo ' |
| 52 | <form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data"> |
| 53 | <input type="file" name="image"><p> |
| 54 | <input type="Submit" name="Submit" value="Submit"> |
| 55 | </form>'; |
| 56 | } |
| 57 | ?> |
23 hits by 15 users in the last 30 minutes.