Okay. Unless I failed a math course in high school (which is possible) I think my formulas are sound. However I'm having issues with this code.
The Intended result: Take any image larger then 180x200 (WxH) and resize it proportionally so it fits within 200x180. What I'm getting, exactly what I want, except images come back deformed or miscreated. I've attached 2 jpegs that are produced by this script. If anyone can help out it would be greatly appreciated $lastnumQry = "SELECT imageID FROM images ORDER BY imageID DESC"; $lastnumRslt = mysql_query($lastnumQry, $conn); $lastnum = mysql_fetch_array($lastnumRslt); $newnum = $lastnum['imageID']+1; //Set image dir $image_root = $DOCUMENT_ROOT.'/images/'; //Create a temp image file from uploaded jpeg $tempimage = imagecreatefromjpeg("$f_image"); $temp_h = ImageSX($tempimage); $temp_w = ImageSY($tempimage); //Checks that the image is not too small if($temp_h < 50 && $temp_w <50) { echo "ERROR: Image is less then 50x50."; exit; } //set file name $filename = $newnum.'.jpg'; //save image if(!ImageJpeg($tempimage, $image_root.$filename)) { echo "ERROR: Image unable to upload!"; exit; } $smallfilename = $newnum.'_t.jpg'; if($temp_h < 200 && $temp_w <180) { //Save thumbnail if(!ImageJpeg($tempimage, $image_root.$smallfilename)) { echo "ERROR: Thumbnail Image unable to upload!"; exit; } } else { echo "Resize beginning.<BR>"; if(($temp_h*1.8) > ($temp_w*2)) { $ratio = $temp_h/$temp_w; $dest_w = 200*$ratio; $dest_h = 200; echo "ONE - $dest_w - $dest_h"; } if(($temp_h*1.8) < ($temp_w*2)) { $ratio = $temp_w/$temp_h; echo "Ratio - $ratio <br>"; $dest_w = 180; $dest_h = 180*$ratio; echo "TWO - $dest_w - $dest_h"; } if(($temp_h*1.8) == ($temp_w*2)) { $dest_w = 180; $dest_h = 200; } $image_t = imagecreatetruecolor($dest_w, $dest_h); imagecopyresampled($image_t, $tempimage, 0, 0, 0, 0, $dest_w, $dest_h, $temp_w, $temp_h); if(!ImageJpeg($image_t, $image_root.$smallfilename)) { echo "ERROR: Thumbnail Image unable to Upload!"; exit; } }
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php