note 90651 modified in function.imagecopyresized by felipe
| From: | felipe@php.net | Date: | Sun, 02 Aug 2009 15:38:26 +0000 |
| Subject: | note 90651 modified in function.imagecopyresized by felipe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-159007@lists.php.net to get a copy of this message | ||
this is a script which loops trough a directory that is currently set to "files" and
resizes all images with respecting the image ratio
<?php
//use this line if you get the error message of using too much memory (strip '//')
//ini_set ( "memory_limit", "48M");
$target_width = 800;
$target_height = 600;
if (ob_get_level() == 0) ob_start();
if ($handle = opendir('files/')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$destination_path = './files/';
$target_path = $destination_path . basename($file);
$extension = pathinfo($target_path);
$allowed_ext = "jpg, gif, png, bmp, jpeg, JPG";
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
$ok = 0;
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}
if ($ok == "1") {
if($extension == "jpg" || $extension == "jpeg" || $extension ==
"JPG"){
$tmp_image=imagecreatefromjpeg($target_path);
}
if($extension == "png") {
$tmp_image=imagecreatefrompng($target_path);
}
if($extension == "gif") {
$tmp_image=imagecreatefromgif($target_path);
}
$width = imagesx($tmp_image);
$height = imagesy($tmp_image);
//calculate the image ratio
$imgratio = ($width / $height);
if ($imgratio>1) {
$new_width = $target_width;
$new_height = ($target_width / $imgratio);
} else {
$new_height = $target_height;
$new_width = ($target_height * $imgratio);
}
$new_image = imagecreatetruecolor($new_width,$new_height);
ImageCopyResized($new_image, $tmp_image,0,0,0,0, $new_width, $new_height, $width, $height);
//Grab new image
imagejpeg($new_image, $target_path);
$image_buffer = ob_get_contents();
ImageDestroy($new_image);
ImageDestroy($tmp_image);
echo " $file resized to $new_width x $new_height <br> \n";
echo str_pad('',4096)."\n";
ob_flush();
flush();
}
}
}
closedir($handle);
echo "Done.";
ob_end_flush();
}
?>
--was--
this is a script which loops trough a directory that is currently set to "files" and
resizes all images with respecting the image ratio
<?php
//use this line if you get the error message of using too much memory (strip '//')
//ini_set ( "memory_limit", "48M");
$target_width = 800;
$target_height = 600;
if (ob_get_level() == 0) ob_start();
if ($handle = opendir('files/')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$destination_path = './files/';
$target_path = $destination_path . basename($file);
$extension = pathinfo($target_path);
$allowed_ext = "jpg, gif, png, bmp, jpeg, JPG";
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}
if ($ok == "1") {
if($extension == "jpg" || $extension == "jpeg" || $extension ==
"JPG"){
$tmp_image=imagecreatefromjpeg($target_path);
}
if($extension == "png") {
$tmp_image=imagecreatefrompng($target_path);
}
if($extension == "gif") {
$tmp_image=imagecreatefromgif($target_path);
}
$width = imagesx($tmp_image);
$height = imagesy($tmp_image);
//calculate the image ratio
$imgratio = ($width / $height);
if ($imgratio>1) {
$new_width = $target_width;
$new_height = ($target_width / $imgratio);
} else {
$new_height = $target_height;
$new_width = ($target_height * $imgratio);
}
$new_image = imagecreatetruecolor($new_width,$new_height);
ImageCopyResized($new_image, $tmp_image,0,0,0,0, $new_width, $new_height, $width, $height);
//Grab new image
imagejpeg($new_image, $target_path);
$image_buffer = ob_get_contents();
ImageDestroy($new_image);
ImageDestroy($tmp_image);
echo " $file resized to $new_width x $new_height <br> \n";
echo str_pad('',4096)."\n";
ob_flush();
flush();
}
}
}
closedir($handle);
echo "Done.";
ob_end_flush();
}
?>
http://php.net/manual/en/function.imagecopyresized.php