123guy Posted January 21, 2013 Share Posted January 21, 2013 hello. I am trying to find a code that will resize an image to 600px wide, with the height scaling to it. I have been google this for awhile, but all I can find is info on how to display it as a different size. I need to be able to upload from a foreach loop, multiple images, with a smaller image....so that it saves as a smaller file size. so lets say the original is a 60" X 60"....I want my code to scale it down to a 10" X 10"(for example). I need it so that when uploaded, the file size is smaller as to allow the image to load faster. I don't think this makes much sense, but if it does, could you help me out with this? Link to comment https://forums.phpfreaks.com/topic/273461-resize-images/ Share on other sites More sharing options...
123guy Posted January 21, 2013 Author Share Posted January 21, 2013 I guess even if it isn't resized, but there is a way to make the file size smaller, that could work too...but I don't think thats possible Link to comment https://forums.phpfreaks.com/topic/273461-resize-images/#findComment-1407373 Share on other sites More sharing options...
Jessica Posted January 21, 2013 Share Posted January 21, 2013 I can't imagine what you searched for that you *didn't* find a dozen tutorials on this subject. http://lmgtfy.com/?q=php+resize+image Try again and come back when you get stuck at a bug. Link to comment https://forums.phpfreaks.com/topic/273461-resize-images/#findComment-1407374 Share on other sites More sharing options...
123guy Posted January 21, 2013 Author Share Posted January 21, 2013 Ok, I was just never able to find anything that worked...I didn't realize I had the GD library until I found a code to test it out. any ways, I want this code from this website: http://bgallz.org/502/php-upload-resize-image/ but I need to know how I can do a foreach for the images...it says can't redeclare...how would I do this as a foreach...or at least able to save more than one file. thanks in advance Link to comment https://forums.phpfreaks.com/topic/273461-resize-images/#findComment-1407382 Share on other sites More sharing options...
123guy Posted January 22, 2013 Author Share Posted January 22, 2013 btw, this is the code I have modified a bit: <?php // upload the file if (isset($_POST["submit"])){ // index.php function generate_resized_image(){ $max_dimension = 600; // Max new width or height, can not exceed this value. $dir = "../images/"; // Directory to save resized image. (Include a trailing slash - /) // Collect the post variables. $postvars = array( "image" => trim($_FILES["image"]["name"]), "image_tmp" => $_FILES["image"]["tmp_name"], "image_size" => (int)$_FILES["image"]["size"], "image_max_width" => (int)$_POST["image_max_width"], "image_max_height" => (int)$_POST["image_max_height"] ); // Array of valid extensions. $valid_exts = array("jpg","jpeg","gif","png"); // Select the extension from the file. $ext = end(explode(".",strtolower(trim($_FILES["image"]["name"])))); // Check not larger than 175kb. if($postvars["image_size"] <= 100000000000000000000){ // Check is valid extension. if(in_array($ext,$valid_exts)){ if($ext == "jpg" || $ext == "jpeg"){ $image = imagecreatefromjpeg($postvars["image_tmp"]); } else if($ext == "gif"){ $image = imagecreatefromgif($postvars["image_tmp"]); } else if($ext == "png"){ $image = imagecreatefrompng($postvars["image_tmp"]); } // Grab the width and height of the image. list($width,$height) = getimagesize($postvars["image_tmp"]); // If the max width input is greater than max height we base the new image off of that, otherwise we // use the max height input. // We get the other dimension by multiplying the quotient of the new width or height divided by // the old width or height. if($postvars["image_max_width"] > $postvars["image_max_height"]){ if($postvars["image_max_width"] > $max_dimension){ $newwidth = $max_dimension; } else { $newwidth = $postvars["image_max_width"]; } $newheight = ($newwidth / $width) * $height; } else { if($postvars["image_max_height"] > $max_dimension){ $newheight = $max_dimension; } else { $newheight = $postvars["image_max_height"]; } $newwidth = ($newheight / $height) * $width; } // Create temporary image file. $tmp = imagecreatetruecolor($newwidth,$newheight); // Copy the image to one with the new width and height. imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height); // Create random 4 digit number for filename. $rand = rand(1000,9999); $filename = $dir.$rand.$postvars["image"]; // Create image file with 100% quality. imagejpeg($tmp,$filename,100); return "<strong>Image Preview:</strong><br/> <img src=\"".$filename."\" border=\"0\" title=\"Resized Image Preview\" style=\"padding: 4px 0px 4px 0px;background-color:#e0e0e0\" /><br/> Resized image successfully generated. <a href=\"".$filename."\" target=\"_blank\" name=\"Download your resized image now!\">Click here to download your image.</a>"; imagedestroy($image); imagedestroy($tmp); } else { return "File size too large. Max allowed file size is ."; } } else { return "Invalid file type. You must upload an image file. (jpg, jpeg, gif, png)."; } } mysql_query("INSERT INTO images (item_id, image) VALUES ('$id123', 'images/".$remote_file1."')"); $title = $_POST['title']; $des = mysql_real_escape_string($_POST['description']); $price = mysql_real_escape_string($_POST['price']); $qty = mysql_real_escape_string($_POST['quantity']); $cat2 = mysql_real_escape_string($_POST['category2']); $cat = mysql_real_escape_string($_POST['category']); if ($cat2 !='') {$cat = $cat2; } mysql_query("INSERT INTO items (id, name, price, description, quantity, category_id, image) VALUES ('$id123', '$title', '$price','$des', '$qty', '$cat', 'images/".$remote_file1."')"); if($cat2 !=''){ mysql_query("INSERT INTO categories (category) VALUES ('$cat2')"); exit; } } ?> <form action="newprod.php?do=upload" method="post" enctype="multipart/form-data" name="form1"> <table width="0" border="0" cellspacing="2" cellpadding="2"> <tr> <td width="69"> <tr> <td>Name:</td> <td width="301"><div align="left"> <input name="title" type="text" /> </div></td> </tr> <tr> <td>Price:</td> <td><div align="left"><input name="price" type="text" /></div></td> </tr> <tr> <td>Quantity:</td> <td><div align="left"><input name="quantity" type="text" /></div></td> </tr> <tr> <td>Description:</td> <td><div align="left"><textarea name="description" cols="" rows=""></textarea></div></td> </tr> <tr> <td>Main Picture:</td> <td> <input name="file1[]" type="file" /></td> </tr> <tr> <td>Picture:</td> <td> <input name="image" type="file" multiple="multiple" /></td> </tr> <tr> <td>Category:</td> <td><div align="left"> <label for="category"></label> <select name="category" id="category"> <option value="">---Choose Category---</option> <?php $result = mysql_query("SELECT * FROM categories"); while($row = mysql_fetch_array($result)) { $category = $row['category']; $id = $row['id']; ?> <option value="<?php echo $category; ?>"><?php echo $category; ?></option> <?php } ?> </select> <br /> or make new category (leave blank if option is already selected):<br /> <label for="category2"></label> <input type="text" name="category2" id="category2" /> </td> </tr> <tr> <td> </td> <input name="image_max_width" type="hidden" id="image_max_width" value="600" size="4"> <input name="image_max_height" type="hidden" id="image_max_height" value="1000000" size="4"> </td> </tr> <tr> <td> </td> <td><div align="left"><input type="submit" name="submit" id="submit" value="Save" /></div></td> </tr> </table> </form> <?php if(isset($_GET['do']) && $_GET['do'] == "upload") { $upload_and_resize = generate_resized_image(); echo '<div id="upload">'. $upload_and_resize. '</div>'; } ?> I know I will need to change image to image[](right?). can anyone help me out with this? Link to comment https://forums.phpfreaks.com/topic/273461-resize-images/#findComment-1407410 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.