student101 Posted April 4, 2009 Share Posted April 4, 2009 I have an image upload and resize function... I would like to know the proper ratio information to help resize the image and keep the proportions or aspect ratio.How does this work or how should it work? [code]$old_x=imagesx($src_img); //width$old_y=imagesy($src_img); //height$ratio1=$old_x/$new_h;$ratio2=$old_y/$new_w;if($ratio1>$ratio2){$thumb_w=$new_w;$thumb_h=$old_y/$ratio1;}else{$thumb_h=$new_h;$thumb_w=$old_x/$ratio2;} Link to comment Share on other sites More sharing options...
zppblood Posted April 4, 2009 Share Posted April 4, 2009 In a coordinate system, x is left-right and y is up-down. I assume h is height and w is width, so h is up-down (Y) and w is left-right (X).I would say to divide the original picture's height and width (smaller_value/bigger_value), store it in a variable. Set a height and/or width that you want to be the maximum for the thumbnail, and then multiply the maximum number you set to the variable you set with the value of the height/width. Link to comment Share on other sites More sharing options...
student101 Posted April 4, 2009 Author Share Posted April 4, 2009 Ok so there's tricky maths involved to getting an image resized, is there a hidden manual for this?Where did you learn that OR How do you know this? Link to comment Share on other sites More sharing options...
jlhaslip Posted April 4, 2009 Share Posted April 4, 2009 http://ca.php.net/manual/en/function.imagecopyresized.php Link to comment Share on other sites More sharing options...
student101 Posted April 4, 2009 Author Share Posted April 4, 2009 http://ca.php.net/manual/en/function.imagecopyresized.phpThanks, I've been through most of them php.net info about images including the upload section.Thanks again.Cheers Link to comment Share on other sites More sharing options...
justsomeguy Posted April 6, 2009 Share Posted April 6, 2009 The ratio of an image is the width divided by the height. If you have an image that is 800x600, or a 4:3 aspect ratio, the width divided by the height will be 1.33. If you want to resize the image to a max of 250 px wide, for example, so you're converting the 800 to 250, then you divide 250 by 800 to get the ratio that it was resized. You multiply the height by that same ratio to get the new height, in this case 187 px high. Link to comment Share on other sites More sharing options...
student101 Posted April 6, 2009 Author Share Posted April 6, 2009 I worked out this below... there isn't a 187px ? echo "<strong>Real Width and Height</strong><br />";$img_width = 800; $img_height = 600;echo "img_width = ".$img_width."<br />";echo "img_height = ".$img_height."<br />";echo "<hr />";//-----------echo "<strong>Set the width and height needed</strong><br />";$set_width = 250;$set_height = 250;echo "set_width = ".$set_width."<br />";echo "set_height = ".$set_height."<br />";echo "<hr />";//-----------echo "<strong>Work out your ratio needed for a properly resized image</strong><br />";echo "<br />";$ratio1 = $set_width / $img_width;echo "<strong>ratio1 = set_width / img_width = ratio1</strong><br />";echo "$set_width / $img_width = $ratio1<br />";echo "ratio1 = $ratio1<br />";echo "<strong>The NEW height calculation:</strong><br />"; echo "<strong>new_height = img_height * ratio1 = new_height</strong><br />";$new_height = $img_height * $ratio1;echo "This height will be: <strong>$new_height</strong><br />";echo "<hr />"; Link to comment Share on other sites More sharing options...
justsomeguy Posted April 6, 2009 Share Posted April 6, 2009 Why are you dividing the new width by the original height? I'm not sure what you think that's going to get you. Link to comment Share on other sites More sharing options...
student101 Posted April 6, 2009 Author Share Posted April 6, 2009 Ok fixed...Now I need to the NEW width, I only worked out the NEW height.Sorry if I seem a bit lost, it's been a hectic day...Do I do the opposite? Link to comment Share on other sites More sharing options...
justsomeguy Posted April 6, 2009 Share Posted April 6, 2009 If you have the ratio of the new height to the old height, you can use that ratio to calculate the new width based on the old width. It doesn't matter which dimension you start with, if you get the resize ratio you can use that to calculate the other dimension. Link to comment Share on other sites More sharing options...
student101 Posted April 7, 2009 Author Share Posted April 7, 2009 If you have the ratio of the new height to the old height, you can use that ratio to calculate the new width based on the old width. It doesn't matter which dimension you start with, if you get the resize ratio you can use that to calculate the other dimension.Ok cool, any image resized becomes 250px in width... Unless this code is incorrect?echo "<strong>Work out your WIDTH ratio needed for a properly resized image</strong><br />";echo "<br />";$ratio2 = $set_height / $img_height;echo "<strong>ratio2 = set_height / img_height = ratio2</strong><br />";echo "$set_height / $img_height = $ratio2<br />";echo "ratio2 = $ratio2<br />";echo "<strong>The NEW width calculation:</strong><br />"; echo "<strong>new_width = img_height * ratio2 = new_width</strong><br />";$new_width = $img_height * $ratio2;echo "This width will be: <strong>$new_width</strong><br />";echo "<hr />"; Link to comment Share on other sites More sharing options...
justsomeguy Posted April 7, 2009 Share Posted April 7, 2009 I'm not sure what $new_height is, isn't the new height the value of $set_height? The width is what you're trying to calculate, you already know what the height is (250). You need to use the ratio of the new height to the old height to calculate the new width based on the old width. Link to comment Share on other sites More sharing options...
student101 Posted April 7, 2009 Author Share Posted April 7, 2009 Fixed, I think... This Forum has some serious issues, regarding cookies / sessions or whatever keeps me logged in.I need to log in for every page including every click!!! Every timeMan this is just irritating, does it add a cookie or not? Does it know that it added a cookie?Please could the creators / developers fix the login / session / cookie issues.... WinXP SP3, Latest Firefox, Latest IE, Latest Opera.THANK YOU, for your time and your explanations.I do appreciate it.Cheers Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.