stelthius Posted December 8, 2008 Share Posted December 8, 2008 Hi guys, back yet again lol... Just wondering how i would alter my code to make it resize images to 100 x 100 my code is below any help is appretiated. $field = "avatar"; //Use field name for avatar //Check that we have a file if((!empty($_FILES["avatar"])) && ($_FILES['avatar']['error'] == 0)) { //Check if the file is JPEG/GIF and it's size is less than 15Kb $filename = basename($_FILES['avatar']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg" || $ext == "JPG" || $ext == "jpeg" || $ext == "gif") && ($_FILES["avatar"]["type"] == "image/jpeg") || ($_FILES["avatar"]["type"] == "image/pjpeg") || ($_FILES["avatar"]["type"] == "image/gif") && //the size below this line states it must be smaller than 15Kb ($_FILES["avatar"]["size"] < 15000)) { //the line below this gives the uploaded file a random number name $random_digit=rand(0000,9999); //combine random digit to you file name to create new file name //use dot (.) to combile these two variables $newplus=$random_digit."."; $subavatar=$newplus.$ext; $subavatar = stripslashes($subavatar); //Determine the path to which we want to save this file $newname = dirname(__FILE__).'/userimg/'.$subavatar; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['avatar']['tmp_name'],$newname))) { $database->updateUserField($this->username,"avatar",$subavatar); } else { $form->setError($field, "* Error: A problem occurred during file upload!"); } } else { $form->setError($field, "* Error: File ".$_FILES["avatar"]["name"]." already exists"); } } else { $form->setError($field, "* Error: Only .jpg or .gif images please."); } } else { $form->setError($field, "* Error: Your file was too big. It needs to be less than 15kb."); } Thanks Rick Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/ Share on other sites More sharing options...
premiso Posted December 8, 2008 Share Posted December 8, 2008 imagecopyresized Is that what you are looking for? Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/#findComment-709560 Share on other sites More sharing options...
stelthius Posted December 8, 2008 Author Share Posted December 8, 2008 Yes it is, but im unsure how to implement the function, i had a look there but i wasnt able to work it out, been at it to long its probably simple, was just wondering if anyone could give a example. Rick Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/#findComment-709571 Share on other sites More sharing options...
gevans Posted December 8, 2008 Share Posted December 8, 2008 <?php function imageResizeWidth($iw, $sourcefile, $destfile){ $is = getimagesize($sourcefile); $ih = $is[1] / ($is[0] / $iw); $img_src = imagecreatefromjpeg($sourcefile); $img_dst = imagecreatetruecolor($iw, $ih); imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $iw, $ih, $is[0], $is[1]); if(!imagejpeg($img_dst, $destfile, 90)) return FALSE; else return TRUE; } function imageResizeHeight($ih, $sourcefile, $destfile){ $is = getimagesize($sourcefile); $iw = $is[0] / ($is[1] / $ih); $img_src = imagecreatefromjpeg($sourcefile); $img_dst = imagecreatetruecolor($iw, $ih); imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $iw, $ih, $is[0], $is[1]); if(!imagejpeg($img_dst, $destfile, 90)) return FALSE; else return TRUE; } ?> Those two functions let you re size by either height or width. So you can set as 100px wide and use the second function, and it will retain the aspect ratio! Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/#findComment-709576 Share on other sites More sharing options...
premiso Posted December 8, 2008 Share Posted December 8, 2008 <?php /** * Make thumbs from JPEG, PNG, GIF source file * * $tmpname = $_FILES['source']['tmp_name']; * $size - max width size * $save_dir - destination folder * $save_name - tnumb new name * * Author: LEDok - http://www.citadelavto.ru/ */ function img_resize( $tmpname, $size, $save_dir, $save_name ) { $save_dir .= ( substr($save_dir,-1) != "/") ? "/" : ""; $gis = GetImageSize($tmpname); $type = $gis[2]; switch($type) { case "1": $imorig = imagecreatefromgif($tmpname); break; case "2": $imorig = imagecreatefromjpeg($tmpname);break; case "3": $imorig = imagecreatefrompng($tmpname); break; default: $imorig = imagecreatefromjpeg($tmpname); } $x = imageSX($imorig); $y = imageSY($imorig); if($gis[0] <= $size) { $av = $x; $ah = $y; } else { $yc = $y*1.3333333; $d = $x>$yc?$x:$yc; $c = $d>$size ? $size/$d : $size; $av = $x*$c; //высота исходной картинки $ah = $y*$c; //длина исходной картинки } $im = imagecreate($av, $ah); $im = imagecreatetruecolor($av,$ah); if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y)) if (imagejpeg($im, $save_dir.$save_name)) return true; else return false; } ?> Usage: <?php $field = "avatar"; //Use field name for avatar //Check that we have a file if((!empty($_FILES["avatar"])) && ($_FILES['avatar']['error'] == 0)) { //Check if the file is JPEG/GIF and it's size is less than 15Kb $filename = basename($_FILES['avatar']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg" || $ext == "JPG" || $ext == "jpeg" || $ext == "gif") && ($_FILES["avatar"]["type"] == "image/jpeg") || ($_FILES["avatar"]["type"] == "image/pjpeg") || ($_FILES["avatar"]["type"] == "image/gif") && //the size below this line states it must be smaller than 15Kb ($_FILES["avatar"]["size"] < 15000)) { //the line below this gives the uploaded file a random number name $random_digit=rand(0000,9999); //combine random digit to you file name to create new file name //use dot (.) to combile these two variables $newplus=$random_digit."."; $subavatar=$newplus.$ext; $subavatar = stripslashes($subavatar); //Determine the path to which we want to save this file $dir = dirname(__FILE__).'/userimg/'; $newname = $dir . $subavatar; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if (img_resize($filename, 100 ,$dir , $subavatar)) { $database->updateUserField($this->username,"avatar",$subavatar); } else { $form->setError($field, "* Error: A problem occurred during file upload!"); } } else { $form->setError($field, "* Error: File ".$_FILES["avatar"]["name"]." already exists"); } } else { $form->setError($field, "* Error: Only .jpg or .gif images please."); } } else { $form->setError($field, "* Error: Your file was too big. It needs to be less than 15kb."); } ?> Un sure if that will work but that is the basic gist. Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/#findComment-709587 Share on other sites More sharing options...
stelthius Posted December 8, 2008 Author Share Posted December 8, 2008 Thank you for your guidence its 1st class Rick Quote Link to comment https://forums.phpfreaks.com/topic/136083-adding-resize-image-to-my-code/#findComment-709676 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.