ghr Posted September 12, 2007 Share Posted September 12, 2007 I've been working on an upload form which includes uploading an image. I've got it to resize to the correct dimensions, but the images seem to become skewed. Heres an example: http://users.cs.cf.ac.uk/G.Rees/car_images/efrty.jpg Here's the code I've got so far: <html> <body> Car<br><br> <?php $regestration = $_POST['regestration']; $manufacturer = $_POST['manufacturer']; $model = $_POST['model']; $price = $_POST['price']; $year = $_POST['year']; $engine = $_POST['engine']; $transmission = $_POST['transmission']; $fuel = $_POST['fuel']; $mileage = $_POST['mileage']; $description = $_POST['description']; $image = $_FILES['image']; ?> <?php //define a maximum size for the uploaded images in Kb define ("MAX_SIZE","500"); //This function reads the extension of the file. //It is used to determine if the file is an image by checking the extension. function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //This variable is used as a flag. //The value is initialized with 0 (meaning no error found) //and it will be changed to 1 if an error occures. //If the error occures the file will not be uploaded. $errors=0; //checks if the form has been submitted if(isset($_POST['Submit'])) { //reads the name of the file the user submitted for uploading $image=$_FILES['image']['name']; //if it is not empty if ($image) { //get the original name of the file from the clients machine $filename = stripslashes($_FILES['image']['name']); //get the extension of the file in a lower case format $extension = getExtension($filename); $extension = strtolower($extension); //if it is not a known extension, we will suppose it is an error and will not upload the file, //otherwise we will do more tests if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { //print error message echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //get the size of the image in bytes //$_FILES['image']['tmp_name'] is the temporary filename of the file //in which the uploaded file was stored on the server $size=filesize($_FILES['image']['tmp_name']); //compare the size with the maxim size we defined and print error if bigger if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } //we will give an unique name, for example the time in unix time format $image_name=$regestration.'.'.$extension; //the new name will be containing the full path where will be stored (images folder) $newname="car_images/".$image_name; //we verify if the image has been uploaded, and print error instead $copied = copy($_FILES['image']['tmp_name'], $newname); if (!$copied) { echo '<h1>Copy unsuccessfull!</h1>'; $errors=1; } else { //new size $req_width = 320; $req_height = 240; // Get new sizes list($width, $height) = getimagesize($newname); $ratio_orig = $width/$height; if ($width/$height > $ratio_orig) { $width = $req_height*$ratio_orig; } else { $height = $req_width/$ratio_orig; } // Load $thumb = imagecreatetruecolor($req_width, $req_height); $source = imagecreatefromjpeg($newname); // Resize imagecopyresized($thumb, $source, 0, 0, 0, 0, $req_width, $req_height, $width, $height); // Output imagejpeg($thumb, $newname); } } } } //If no errors registred, print the success message if(isset($_POST['Submit']) && !$errors) { echo "<h1>File Uploaded Successfully!</h1>"; } ?> <?php $htmlTable1 = ' <table width = 500 border=1 bgcolor="cyan"> <tr> <th width = "25%">Make: <td width = "75%">' ?> <?php $htmlTable2 = '</tr> <tr> <th>Model: <td>' ?> <?php $htmlTable3 = ' </tr> <tr> <th>Year: <td>' ?> <?php $htmlTable4 = '</tr> <tr> <th>Description: <td>' ?> <?php $htmlTable5 = 'cc, ' ?> <?php $htmlTableComma = ', ' ?> <?php $htmlTable6 = 'miles: <br><br>' ?> <?php $htmlTable7 = ' </td> </tr> <tr> <th>Image: <td>' ?> <?php $htmlImageLink = "<img src=".$newname.">"; ?> <?php $htmlTable8 = ' </td> </tr> </table> </body> </html>' ?> <p> You are selling the following:</p> <br><br> <table width = 500 border=1 bgcolor="orange"> <tr> <th width = "25%">Regestration: <td width = "75%"><?php print("$regestration") ?></tr> </tr> <br> <table width = 500 border=1 bgcolor="cyan"> <tr> <th width = "25%">Make: <td width = "75%"><?php print("$manufacturer") ?></tr> <tr> <th width = "25%">Model: <td width = "75%"><?php print("$model") ?></tr> <tr> <th width = "25%">Year: <td width = "75%"><?php print("$year") ?></tr> <tr> <th width = "25%">Make: <td width = "75%"><?php print("$engine cc, $transmission, $fuel, $mileage miles:<br><br>$description") ?></tr> <tr> <th width = "25%">Image: <td width = "75%"><?php print("<img src=".$newname.">") ?></tr> </table> <br><br><br> <a href="Cars_for_sale.php">View Cars for Sale</a> <FORM METHOD="LINK" ACTION="Cars_for_sale.php"> <BUTTON TYPE="Submit"><FONT COLOR=GREEN>Confirm Sale</FONT></BUTTON> </FORM> <?php $ourFileName = "car_sales/$regestration.html"; $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); fwrite($ourFileHandle, $Line1html); fwrite($ourFileHandle, $htmlTable1); fwrite($ourFileHandle, $manufacturer); fwrite($ourFileHandle, $htmlTable2); fwrite($ourFileHandle, $model); fwrite($ourFileHandle, $htmlTable3); fwrite($ourFileHandle, $year); fwrite($ourFileHandle, $htmlTable4); fwrite($ourFileHandle, $engine); fwrite($ourFileHandle, $htmlTable5); fwrite($ourFileHandle, $transmission); fwrite($ourFileHandle, $htmlTableComma); fwrite($ourFileHandle, $fuel); fwrite($ourFileHandle, $htmlTableComma); fwrite($ourFileHandle, $mileage); fwrite($ourFileHandle, $htmlTable6); fwrite($ourFileHandle, $description); fwrite($ourFileHandle, $htmlTable7); fwrite($ourFileHandle, $htmlImageLink); fwrite($ourFileHandle, $htmlTable8); fclose($ourFileHandle); ?> </body> </html> Also, does this code resize the saved image, or does it just change the display of it on the html page? I'd like it to change the actual uploaded image. Would I have to do much to achive that if it doesnt allready? Thanks, Gareth Quote Link to comment https://forums.phpfreaks.com/topic/69092-image-resize-skewed-image/ Share on other sites More sharing options...
ghr Posted September 12, 2007 Author Share Posted September 12, 2007 A friend suggested this code but I can't seem to do anything with it: <?php require_once 'Image/Transform.php'; $i =& Image_Transform::factory(''); $i->load('test.jpg'); $i->fit(100,100); $i->save('resized.png', 'png'); ?> I inserted it into the "else" where the previous image resize bit was, but no luck. Gareth Quote Link to comment https://forums.phpfreaks.com/topic/69092-image-resize-skewed-image/#findComment-347313 Share on other sites More sharing options...
syngod Posted September 12, 2007 Share Posted September 12, 2007 here is a good tutorial for that don't know if it is what you are looking for http://blazonry.com/scripting/upload-size.php Quote Link to comment https://forums.phpfreaks.com/topic/69092-image-resize-skewed-image/#findComment-347315 Share on other sites More sharing options...
ghr Posted September 12, 2007 Author Share Posted September 12, 2007 Yeah i've come across that while searching myself. It seems pretty similar to what I've done, but I cant be certain that I havn't missed something obvious. hmmmmmmm! Quote Link to comment https://forums.phpfreaks.com/topic/69092-image-resize-skewed-image/#findComment-347382 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.