Solarpitch Posted November 10, 2007 Share Posted November 10, 2007 Hey Guys, I am currently using the below script on my site. It works fine, the only propblem I have is that I havent set anything to catch a resize massive images. I want the script to catch images larger than 800px and resize them to something a little bit smaller. Just wondering how I could add it to this script. This script will take the current image and copy a thumbnail which will then be sent to the server. So how could I use it to catch large images and resize? I can use the resize() function and specify the height and width I want, I am just not sure how to do the rest. $image1 = $_FILES['image1']['tmp_name']; if($image1 != ""){$image1exists = 1; } if($image1exists == 1){$image1file = $folder.$timest."AA".basename($_FILES['image1']['name']);} if($image1exists == 1){$image1 = $folder.$timest."AA".basename($_FILES['image1']['name']);} if($_FILES['image1']['tmp_name'] != ""){ list($width, $height, $type, $attr) = getimagesize($_FILES['image1']['tmp_name']); move_uploaded_file($_FILES['image1']['tmp_name'], $image1file); $copy1 = $image1; $destination_width = 160; $destination_height = 110; $imagecop1 = new hft_image($copy1); $sz=getimagesize($copy1); $imagecop1->resize($destination_width, $destination_height, '-'); $image1thumb = $folder.$timest."AA"."THUMB.jpg"; $imagecop1->output_resized($image1thumb, "JPEG"); } Link to comment https://forums.phpfreaks.com/topic/76755-setting-a-max-file-size-on-upload/ Share on other sites More sharing options...
cunoodle2 Posted November 10, 2007 Share Posted November 10, 2007 Here is some script that I wrote in the past for this very function. You will have to take the time to go through it and change it to your variable names... <?php //check the size of the file if need be shrink it down $size = getimagesize($_FILES['image']['tmp_name']); // Get the image dimensions and mime type $width = $size[0]; // Width of the image $height = $size[1]; // Width of the image if(($width > $height) && ($width > 480)) { $height = (($height/$width) * 480); $width = 480; $resize = "true"; } else if (($height > $width) && ($height > 360)) { $width = (($width/$height) * 360); $height = 360; $resize = "true"; } if ($resize == "true") { thumb($uploadFile, $height, $width, $uploadFile); } ?> Then I had a function called "thumb" that you can either place on the same page or use in like an includes page.... <?php function thumb($source, $height, $width, $new_source) { /* Check for the image's exisitance */ if (!file_exists($source)) { echo 'File does not exist!'; } else { $size = getimagesize($source); // Get the image dimensions and mime type $w = $width; $h = $height; $quality = "100"; $resize = imagecreatetruecolor($w, $h); // Create a blank image /* Check quality option. If quality is greater than 100, return error */ if ($quality > 100) { echo 'The maximum quality is 100. Quality changes only affect JPEG images.'; } else { //header('Content-Type: '.$size['mime']); // Set the mime type for the image switch ($size['mime']) { case 'image/jpeg': $im = imagecreatefromjpeg($source); imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); // Resample the original JPEG imagejpeg($resize, $new_source, $quality); // Output the new JPEG break; case 'image/png': $im = imagecreatefrompng($source); imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); // Resample the original PNG imagepng($resize, $new_source, $quality); // Output the new PNG break; } imagedestroy($im); } } } ?> Hopefully that helps you out. Link to comment https://forums.phpfreaks.com/topic/76755-setting-a-max-file-size-on-upload/#findComment-388642 Share on other sites More sharing options...
Solarpitch Posted November 10, 2007 Author Share Posted November 10, 2007 Thanks mate! Link to comment https://forums.phpfreaks.com/topic/76755-setting-a-max-file-size-on-upload/#findComment-388681 Share on other sites More sharing options...
Solarpitch Posted November 10, 2007 Author Share Posted November 10, 2007 Hey again guys, I seem to be having trouble with memory when trying to run this piece of code. I have marked where the code fails and I seem to get the message Allowed memory size of 33554432 bytes exhausted (tried to allocate 7584 bytes) in admin/thumbnail.inc.php on line 134 Is there anyway I can free up memory while running the script? if($_FILES['image1']['tmp_name'] != ""){ list($width, $height, $type, $attr) = getimagesize($_FILES['image1']['tmp_name']); move_uploaded_file($_FILES['image1']['tmp_name'], $image1file); $copy1 = $image1; if(($width > $height) && ($width > 800)) { $height = (($height/$width) * 800); $width = 800; $resize = "true"; } else if (($height > $width) && ($height > 800)) { $width = (($width/$height) * 800); $height = 800; $resize = "true"; } if ($resize == "true") { $destination_width1 = 760; $destination_height1 = 500; $newcopy = new hft_image($copy1); $size=getimagesize($image1); $newcopy->resize($destination_width1, $destination_height1, '-'); $newsize = $folder.$timest."NEWSIZE"."THUMB.jpg"; $newcopy->output_resized($newsize, "JPEG"); } $destination_width2 = 160; $destination_height2 = 110; $imagecop1 = new hft_image($copy1); $sz=getimagesize($copy1); $imagecop1->resize($destination_width2, $destination_height2, '-'); $image1thumb = $folder.$timest."AA"."THUMB.jpg"; $imagecop1->output_resized($image1thumb, "JPEG"); $destination_width3 = 235; $destination_height3 = 170; $imagecop2 = new hft_image($copy1); ###### CODE FAILS HERE ###### $sz=getimagesize($copy1); $imagecop2->resize($destination_width3, $destination_height3, '-'); $mainthumb = $folder.$timest."MAIN"."THUMB.jpg"; $imagecop2->output_resized($mainthumb, "JPEG"); } Link to comment https://forums.phpfreaks.com/topic/76755-setting-a-max-file-size-on-upload/#findComment-388777 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.