René fournier wrote:
Hello,
I have a function that is meant to check if an image is greater than
a certain width and height, and if it is, downsample it. The checking
part works fine. Downsampling is not happening though. Here's what I've got
(btw, $file = "/somedirectory/photo.jpg"):
$src_img=imagecreatefromJPEG($file); $dst_img=imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_width,$new_height,$siz e[0],$size[1]);
imagejpeg($dst_img,$file,$img_quality);
Any ideas?
Thanks.
...Rene
<?php /** * Resize an image to a new width. Original image portion is maintained. * * Has two modes: * * $auto == "yes, looks at $_FILES['username']['error'] to determine if a file was just uploaded. * If so, it gets the file name from $_FILES and uses $file_location for the path, relative * to the route. * * Or else, it uses the file $file_location, which must be the full path, relative to the route. * * image resizer arguments: * $resize_args= array("quality" => 100, "new_width" => 200, "quality" =>100, "backup_org" => "no"); * * quality = percent [e.g. "quality" => 90] meaning 90% * width = pixels [e.g., "new_width" => 200] i.e., 200 pixels. * backup_org [original file] "yes" or "no". "no" is the default * * Use this to fetch $resize_stats: * foreach($resize_stats as $key => $value) * { * echo $key . " = " . $value; * } */
function resize_width($file_location, $resize_args, $auto) { global $DOCUMENT_ROOT; if (empty($resize_args)) die("<p style=\"color:red\">Code error, argument(s) in \$resize_arg missing in resize_width. </p> "); if($auto== "yes"){ if ($_FILES['username']['error'] == 0) { $name = key($_FILES); //could use the register variables, but this is safer. $org_img = $_FILES[$name]['name']; $org_img = filename_fixer($org_img); $org_img = $file_location . $org_img; } } else{$org_img = $file_location;} if ($resize_args['backup_org'] == "yes") { file_backup($org_img); } $org_img = $DOCUMENT_ROOT . $org_img; if (!file_exists($org_img))die("<p style=\"color:red\">Code error, $org_img missing or incorrect file name in resize_width()</p> </body></html>"); $new_width = $resize_args['new_width']; $quality = $resize_args['quality']; $imagehw = GetImageSize($org_img); $org_width = $imagehw[0]; $org_height = $imagehw[1]; if ($new_width !== $org_width) { $imagevsize = $org_height * $new_width / $org_width; $new_height = ceil($imagevsize); $src_img = imagecreatefromjpeg($org_img); $dest_img = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $org_width, $org_height); imagejpeg($dest_img, $org_img, $quality); imagedestroy($src_img); imagedestroy($dest_img); } else { $newheight = $org_height; } // see above how to use array $resize_stats = array("Orginal width" => $org_width, "Orginal height" => $org_height, "New width" => $new_width, "New height" => $new_height); if ($resize_args['show_stats'] == "yes") { foreach($resize_stats as $key => $value) { echo $key . " = " . $value . "<br>\r\n"; } } return $resize_stats; } ?>
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php