note 125293 deleted from function.imagecopyresized by cmb
| From: | cmb@php.net | Date: | Thu, 20 Aug 2020 18:38:17 +0000 |
| Subject: | note 125293 deleted from function.imagecopyresized by cmb | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-215007@lists.php.net to get a copy of this message | ||
Note Submitter: oleg at nycwds dot com
----
/**
* Resize an image into a square, centering and auto-scale
* Author: New York Web Developers Studio
* WebSite: www.nycwds.com
*/
function Resizer($file, $name, $dir, $NewSize)
{
$size = getimagesize($file);
if( !is_array($size) ) return 'Invalid file type.';
$type = explode('/', $size['mime']);
if( $type[0] !== 'image' ) return 'Invalid file type.';
if( $NewSize > $size[0] || $NewSize > $size[1] ) return 'image too small.';
$S = min($size[0], $size[1]);
$x = max(($size[0] - $S)/2, 0);
$y = max(($size[1] - $S)/2, 0);
switch ($type[1]) {
case 'jpeg':
$Img = imagecreatefromjpeg($file);
break;
case 'png':
$Img = imagecreatefrompng($file);
break;
case 'gif':
$Img = imagecreatefromgif($file);
break;
case 'bmp':
$Img = imagecreatefrombmp($file);
break;
default:
return 'Invalid file type.';
break;
}
$ScaleImg = imagecreatetruecolor($NewSize, $NewSize);
$result = imagecopyresized($ScaleImg, $Img, 0, 0, $x, $y, $NewSize, $NewSize, $S, $S) ?
'ok' : 'resize error';
$result = imagejpeg($ScaleImg, $dir . $name) ? 'ok' : $result . ', save error';
imagedestroy($Img);
imagedestroy($ScaleImg);
return $result;
}
$ArrayPath = [
'150' => '/img/users/',
'60' => '/img/users/',
'37' => '/img/users/',
];
$ImgName = '/' . md5(time()) . ".jpg";
foreach ($ArrayPath as $size => $dir)
{
$dir = '.' . $dir . $size;
if( !is_dir($dir) ) mkdir($dir, 0777);
$result = Resizer($_FILES['img']['tmp_name'], $ImgName, $dir, $size * 1);
}