note 58475 deleted from function.imagecopyresampled by cmb
| From: | cmb@php.net | Date: | Sun, 19 May 2019 16:12:20 +0000 |
| Subject: | note 58475 deleted from function.imagecopyresampled by cmb | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-211080@lists.php.net to get a copy of this message | ||
Note Submitter: erik at phpcastle dot com
----
I've changed the script from info at lontronics dot nl a little bit so the thumbnail is not
cutted off when this is not necessary.
<?php
// Resize function
// $pictype is optional. When empty the image will not be cutted off
function resize($filename, $dest, $width, $height, $pictype = "")
{
$format = strtolower(substr(strrchr($filename,"."),1));
switch($format)
{
case 'gif' :
$type ="gif";
$img = imagecreatefromgif($filename);
break;
case 'png' :
$type ="png";
$img = imagecreatefrompng($filename);
break;
case 'jpg' :
$type ="jpg";
$img = imagecreatefromjpeg($filename);
break;
case 'jpeg' :
$type ="jpg";
$img = imagecreatefromjpeg($filename);
break;
default :
die ("ERROR; UNSUPPORTED IMAGE TYPE");
break;
}
list($org_width, $org_height) = getimagesize($filename);
$xoffset = 0;
$yoffset = 0;
if ($pictype == "thumb") // To minimize destortion
{
if ($org_width / $width > $org_height/ $height)
{
$xtmp = $org_width;
$xratio = 1-((($org_width/$org_height)-($width/$height))/2);
$org_width = $org_width * $xratio;
$xoffset = ($xtmp - $org_width)/2;
}
elseif ($org_height/ $height > $org_width / $width)
{
$ytmp = $org_height;
$yratio = 1-((($width/$height)-($org_width/$org_height))/2);
$org_height = $org_height * $yratio;
$yoffset = ($ytmp - $org_height)/2;
}
//Added this else part -------------
} else {
$xtmp = $org_width/$width;
$new_width = $width;
$new_height = $org_height/$xtmp;
if ($new_height > $height){
$ytmp = $org_height/$height;
$new_height = $height;
$new_width = $org_width/$ytmp;
}
$width = round($new_width);
$height = round($new_height);
}
$img_n=imagecreatetruecolor ($width, $height);
imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width,
$org_height);
if($type=="gif")
{
imagegif($img_n, $dest);
}
elseif($type=="jpg")
{
imagejpeg($img_n, $dest);
}
elseif($type=="png")
{
imagepng($img_n, $dest);
}
elseif($type=="bmp")
{
imagewbmp($img_n, $dest);
}
Return true;
}
?>