proctk Posted July 19, 2007 Share Posted July 19, 2007 Hi the below code reduces the image at the same time it reduces the disk space the image uses. It works excellent but I want to reduce the diskspace each file uses even more, but keep the image width and height the same any ideas how to do this thank you // upload Images if(isset($_POST['upLoadImages'])){ foreach ($_FILES['file']['tmp_name'] as $i => $val) : if (is_uploaded_file($_FILES['file']['tmp_name'][$i])) { // This is the temporary file created by PHP $uploadedfile = $HTTP_POST_FILES['file']['tmp_name'][$i]; // Create an Image from it so we can do the resize $src = imagecreatefromjpeg($uploadedfile); // Capture the original size of the uploaded image list($width,$height)=getimagesize($uploadedfile); // For our purposes, I have resized the image to be // 600 pixels wide, and maintain the original aspect // ratio. This prevents the image from being "stretched" // or "squashed". If you prefer some max width other than // 600, simply change the $newwidth variable $newwidth=450; $newheight=($height/$width)*450; $tmp=imagecreatetruecolor($newwidth,$newheight); // this line actually does the image resizing, copying from the original // image into the $tmp image imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); // now write the resized image to disk. I have assumed that you want the // resized, uploaded image file to reside in the ./images subdirectory. $filename = "../user_images/". $user_name."-".$HTTP_POST_FILES['file']['name'][$i]; imagejpeg($tmp,$filename,100); imagedestroy($src); imagedestroy($tmp); // NOTE: PHP will clean up the temp file it created when the request // has completed. $image_size = filesize($filename); $image_name = $user_name."-".$HTTP_POST_FILES['file']['name'][$i]; $add_image = ("INSERT INTO image_files (image_name, image_size, user_id, create_date, album) VALUES('$image_name', '$image_size', '$user_id', now(), '$album')"); $sql = mysql_query($add_image)or die("SQL Error: $add_image<br>" . mysql_error()); $otheralbum_cover = $user_name."-".$HTTP_POST_FILES['file']['name'][0]; mysql_query("UPDATE albumNames SET album_cover = '$otheralbum_cover' WHERE album= '$album' AND user_id = '$user_id'")or die ("Link Create Error:" .mysql_error()); } endforeach; // } Link to comment https://forums.phpfreaks.com/topic/60696-reduce-file-size/ Share on other sites More sharing options...
DeadManWalking Posted July 19, 2007 Share Posted July 19, 2007 In this line: imagejpeg($tmp,$filename,100); 100 stands for the percentage of image quality. Reducing it to 80 or so will save you a nice amount of space, and you will have *almost* same quality. Link to comment https://forums.phpfreaks.com/topic/60696-reduce-file-size/#findComment-301996 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.