function resizeImage($srcImage,$maxwidth,$maxheight,$name)
{
list($width, $height, $type, $attr) = getimagesize($srcImage);
// if($width < $maxWidth || $height < $maxHeight) return ;
switch ($type) {
case 1:
$img = imagecreatefromgif($srcImage);
break;
case 2:
$img = imagecreatefromjpeg($srcImage);
break;
case 3:
$img = imagecreatefrompng($srcImage);
break;
default:
$img = imagecreatefrompng($srcImage);
break;
}
$canvas = imagecreatetruecolor($maxwidth,$maxheight); // 创建一个真彩色图像 我把它理解为创建了一个画布
imagecopyresampled($canvas,$img,0,0,0,0,$maxwidth,$maxheight,$width,$height);
// 选取原图片整个长宽上的像素,将原图片左上角和画布左上角对齐,画布宽100px,高100px。
// 这样设置是缩小或放大原图片。 如果原图片宽或高比画布大就会缩小,如果原图片宽或高比画布小就会放大。
// 如果想截取图片,不想放大或缩小。 就要将最后两个参数设置成分别和画布宽和高相等。 像这样:imagecopyresampled($canvas,$sourceImage,0,0,0,0,$newWidth,$newHeight,$newWidth,$newHeight);
// 如果想控制从哪里开始截取,就要设置后面两个“0”。 前面一个“0”是原图片上X轴坐标,后面一个是Y轴坐标。 比如,想从原图片X轴100px,Y轴50px的点开始截取。就要这样设置:imagecopyresampled($canvas,$sourceImage,0,0,100,50,$newWidth,$newHeight,$newWidth,$newHeight);
imagejpeg($canvas,$name,100);
}
用法:
<?php
$bgimagepath="./res/imag.jpg";
resizeImage($bgimagepath,640,640,'/head1.png');
?>