Ok, I've been trying to adjust the script so that it does it by height instead of width, but it just does the same as before.
Old script:
Code: Select all
// $image - path to original image.
// $new_image - path to save new image,
// $new_width - should probably raname this max width.
function resize_image_by_width($image, $new_image, $new_width) {
global $annwyn_resize_image_source, $annwyn_resize_image_dest;
$imagesize = getimagesize($image);
if($imagesize === false) {
return false;
}
register_shutdown_function("shutdown_func");
switch($imagesize[2]) {
case IMAGETYPE_JPEG:
if(($annwyn_resize_image_source =
@imagecreatefromjpeg($image)) === false) {
return false;
}
break;
case IMAGETYPE_PNG:
if(($annwyn_resize_image_source = @imagecreatefrompng($image)) === false) {
return false;
}
break;
case IMAGETYPE_GIF:
if(($annwyn_resize_image_source = @imagecreatefromgif($image)) === false) {
return false;
}
break;
default:
return false;
break;
}
// Don't enlarge but reduce proportionally.
if($imagesize[0] < $new_width) {
$new_width = $imagesize[0];
$new_height = $imagesize[1];
} else {
$new_height = $new_width * ($imagesize[1] / $imagesize[0]);
}
// Use imagecreat() for GIF images.
if($imagesize[2] == IMAGETYPE_GIF) {
$annwyn_resize_image_dest = imagecreate($new_width, $new_height);
} else {
$annwyn_resize_image_dest = imagecreatetruecolor($new_width, $new_height);
}
// Save the alphablending of PNG images.
if($imagesize[2] == IMAGETYPE_PNG) {
imagealphablending($annwyn_resize_image_dest, false);
imagesavealpha($annwyn_resize_image_dest, true);
}
// Save the transparency of GIF images.
if($imagesize[2] == IMAGETYPE_GIF) {
$colorTransparent = imagecolortransparent($annwyn_resize_image_source);
imagepalettecopy($annwyn_resize_image_dest,$annwyn_resize_image_source);
imagefill($annwyn_resize_image_dest,0,0,$colorTransparent);
imagecolortransparent($annwyn_resize_image_dest, $colorTransparent);
}
imagecopyresampled(
$annwyn_resize_image_dest,
$annwyn_resize_image_source,
0, 0, 0, 0, $new_width, $new_height, $imagesize[0], $imagesize[1]);
// Output the same image type as the original.
switch($imagesize[2]) {
case IMAGETYPE_JPEG:
imagejpeg($annwyn_resize_image_dest, $new_image);
break;
case IMAGETYPE_PNG:
imagepng($annwyn_resize_image_dest, $new_image);
break;
case IMAGETYPE_GIF:
imagegif($annwyn_resize_image_dest, $new_image);
break;
default:
return false;
break;
}
imagedestroy($annwyn_resize_image_source);
$annwyn_resize_image_source = false;
imagedestroy($annwyn_resize_image_dest);
$annwyn_resize_image_dest = false;
return true;
}
New script:
Code: Select all
// $image - path to original image.
// $new_image - path to save new image,
// $new_height - should probably raname this max height.
function resize_image_by_height($image, $new_image, $new_height) {
global $annwyn_resize_image_source, $annwyn_resize_image_dest;
$imagesize = getimagesize($image);
if($imagesize === false) {
return false;
}
register_shutdown_function("shutdown_func");
switch($imagesize[2]) {
case IMAGETYPE_JPEG:
if(($annwyn_resize_image_source =
@imagecreatefromjpeg($image)) === false) {
return false;
}
break;
case IMAGETYPE_PNG:
if(($annwyn_resize_image_source = @imagecreatefrompng($image)) === false) {
return false;
}
break;
case IMAGETYPE_GIF:
if(($annwyn_resize_image_source = @imagecreatefromgif($image)) === false) {
return false;
}
break;
default:
return false;
break;
}
// Don't enlarge but reduce proportionally.
if($imagesize[1] < $new_height) {
$new_width = $imagesize[0];
$new_height = $imagesize[1];
} else {
//$new_height = $new_width * ($imagesize[1] / $imagesize[0]); //old calculation
$new_width = $new_height * ($imagesize[1] / $imagesize[0]); //new calculation
}
// Use imagecreat() for GIF images.
if($imagesize[2] == IMAGETYPE_GIF) {
$annwyn_resize_image_dest = imagecreate($new_width, $new_height);
} else {
$annwyn_resize_image_dest = imagecreatetruecolor($new_width, $new_height);
}
// Save the alphablending of PNG images.
if($imagesize[2] == IMAGETYPE_PNG) {
imagealphablending($annwyn_resize_image_dest, false);
imagesavealpha($annwyn_resize_image_dest, true);
}
// Save the transparency of GIF images.
if($imagesize[2] == IMAGETYPE_GIF) {
$colorTransparent = imagecolortransparent($annwyn_resize_image_source);
imagepalettecopy($annwyn_resize_image_dest,$annwyn_resize_image_source);
imagefill($annwyn_resize_image_dest,0,0,$colorTransparent);
imagecolortransparent($annwyn_resize_image_dest, $colorTransparent);
}
imagecopyresampled(
$annwyn_resize_image_dest,
$annwyn_resize_image_source,
0, 0, 0, 0, $new_width, $new_height, $imagesize[0], $imagesize[1]);
// Output the same image type as the original.
switch($imagesize[2]) {
case IMAGETYPE_JPEG:
imagejpeg($annwyn_resize_image_dest, $new_image);
break;
case IMAGETYPE_PNG:
imagepng($annwyn_resize_image_dest, $new_image);
break;
case IMAGETYPE_GIF:
imagegif($annwyn_resize_image_dest, $new_image);
break;
default:
return false;
break;
}
imagedestroy($annwyn_resize_image_source);
$annwyn_resize_image_source = false;
imagedestroy($annwyn_resize_image_dest);
$annwyn_resize_image_dest = false;
return true;
}
The new script does exactly the same as the old one...?
Just point me in the right direction please!
