Voting

: min(eight, two)?
(Example: nine)

The Note You're Voting On

kvslaap
16 years ago
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();
}
?>

<< Back to user notes page

To Top