以下是以前做头像处理程序时写的一段代码。
实现:
上传一张图片,然后保存成大头像,再就是将其缩小保存为小头像。
具体代码如下:
<?php /** * 等比例绽放图片大小 * edit by www.jb200.com */ public function drawImg($from,$w=100,$h=100,$newfile){ $info = getimagesize($from); switch ($info[2]){ case 1: $im = imagecreatefromgif($from); break; case 2: $im = imagecreatefromjpeg($from); break; case 3: $im = imagecreatefrompng($from); break; default: exit('不支持的图像格式'); break; } $temp = pathinfo($from); $name = $temp["basename"];//文件名 $dir = $temp["dirname"];//文件所在的文件夹 $extension = $temp["extension"];//文件扩展名 $width = $info[0];//获取图片宽度 $height = $info[1];//获取图片高度 $per1 = round($width/$height,2);//计算原图长宽比 $per2 = round($w/$h,2);//计算缩略图长宽比 //计算缩放比例 if($per1>$per2||$per1==$per2) { //原图长宽比大于或者等于缩略图长宽比,则按照宽度优先 $per=$w/$width; } if($per1<$per2) { //原图长宽比小于缩略图长宽比,则按照高度优先 $per=$h/$height; } $temp_w = intval($width*$per);//计算原图缩放后的宽度 $temp_h = intval($height*$per);//计算原图缩放后的高度 $dst_im = imagecreatetruecolor($temp_w, $temp_h); //调整大小 imagecopyresized($dst_im, $im, 0, 0, 0, 0, $temp_w, $temp_h, $width, $height); //输出缩小后的图像 //exit($newfile); imagejpeg($dst_im,$dir.'/'.$newfile); imagedestroy($dst_im); imagedestroy($im); } ?>
注意:
imagejpeg()函数,前面未加后面的保存路径,一直不成功!
经测试才明白是需要添加一个保存路径!
您可能感兴趣的文章:
php缩放图片的实例代码
php等比例缩放图片的工具SimpleImage实例学习
php批量缩放图片的代码举例