Presto-X Posted July 17, 2008 Share Posted July 17, 2008 Hello Guys, I'm working on a project and I need to upload an image then resize it, I have the project working right now with the following code but the problem is it only resizes the thumbnails, I need it to resize a 1024px image down to 640px wide and then make a 360px image and a 222px image: $size = 150; // the thumbnail height $filedir = '../images/stories/property/'; // the directory for the original image $thumbdir = '../images/stories/property/thumbnails/'; // the directory for the thumbnail image $maxfile = '2000000'; $mode = '0666'; $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; $userfile_size = $_FILES['image']['size']; $userfile_type = $_FILES['image']['type']; if (isset($_FILES['image']['name'])) { $prod_img = $filedir.$userfile_name; $prod_img_thumb = $thumbdir.$userfile_name; move_uploaded_file($userfile_tmp, $prod_img); chmod ($prod_img, octdec($mode)); $sizes = getimagesize($prod_img); $aspect_ratio = $sizes[1]/$sizes[0]; if ($sizes[1] <= $size) { $new_width = $sizes[0]; $new_height = $sizes[1]; }else{ $new_height = $size; $new_width = abs($new_height/$aspect_ratio); } $destimg=ImageCreateTrueColor($new_width,$new_height) or die('Problem In Creating image'); $srcimg=ImageCreateFromJPEG($prod_img) or die('Problem In opening Source Image'); if(function_exists('imagecopyresampled')) { imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die('Problem In resizing'); }else{ Imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die('Problem In resizing'); } ImageJPEG($destimg,$prod_img_thumb,90) or die('Problem In saving'); imagedestroy($destimg); } But I would like to make 3 images when uploading, a Large, Medium, and Small image. I have folders setup for each of them in the images folder, I want the large images to go into the ../images/large/ and the medium size images to go in ../images/ and the small images to go in ../images/thumbnails/ This is the code that I was trying to use as it was a bit easir to understand, but it was not working out for me. // Large Image $uploadedfile = $_FILES['uploadfile']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=640; $newheight=($height/$width)*600; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/large/". $_FILES['uploadfile']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); // Normal Image $uploadedfile = $_FILES['uploadfile']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=360; $newheight=($height/$width)*600; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/". $_FILES['uploadfile']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); // Thumbnail Image $uploadedfile = $_FILES['uploadfile']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=222; $newheight=($height/$width)*600; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/thumbnails/". $_FILES['uploadfile']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); Link to comment https://forums.phpfreaks.com/topic/115184-solved-image-resize-i-need-to-create-a-small-medium-and-large-image/ Share on other sites More sharing options...
MadTechie Posted July 17, 2008 Share Posted July 17, 2008 And by "Not working" you mean what exactly ? $newwidth=640; $newheight=($height/$width)*600; Why * 600 ? Link to comment https://forums.phpfreaks.com/topic/115184-solved-image-resize-i-need-to-create-a-small-medium-and-large-image/#findComment-592333 Share on other sites More sharing options...
Presto-X Posted July 17, 2008 Author Share Posted July 17, 2008 well I found part of the problem that I was having was in my code: $_FILES['uploadfile'] It needed to be: $_FILES['image'] Ok now on to aspect ratios This is the code that I'm using now: // Large Image $uploadedfile = $_FILES['image']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=640; $newheight=($height/$width); $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/large/". $_FILES['image']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); // Normal Image $uploadedfile = $_FILES['image']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=360; $newheight=($height/$width); $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/". $_FILES['image']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); // Thumbnail Image $uploadedfile = $_FILES['image']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); list($width,$height)=getimagesize($uploadedfile); $newwidth=222; $newheight=($height/$width); $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = "../images/stories/property/thumbnails/". $_FILES['image']['name']; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); and these are the errors that I'm getting: Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 11 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 12 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 14 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 16 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 23 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 24 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 26 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 28 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 35 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 36 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 38 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\wamp\www\First Commercial Real Estate\administrator\components\com_property\update_image_form.php on line 40 Link to comment https://forums.phpfreaks.com/topic/115184-solved-image-resize-i-need-to-create-a-small-medium-and-large-image/#findComment-592630 Share on other sites More sharing options...
Presto-X Posted July 17, 2008 Author Share Posted July 17, 2008 Ok I fixed the aspect ratio $newwidth=450; $newheight=($height/$width); It needed to have what ever the new width is set to then set *450 to be the same, like so: $newwidth=450; $newheight=($height/$width)*450; Link to comment https://forums.phpfreaks.com/topic/115184-solved-image-resize-i-need-to-create-a-small-medium-and-large-image/#findComment-592659 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.