您好,欢迎访问一九零五行业门户网

php等比缩放图片

步骤如下:
1.获取图片的基本信息
用这个getimagesize函数
2.判断图片资源类型并创建对应图片资源
用这个getpictype函数(自定义函数)
3.计算缩放比例
原则是取最小的缩放系数.例如:800*600的图片,缩放到200*200以下,则缩放系数为scale=200/800>200/600?200/600:200/800; 因为1/4
4.计算缩放后的尺寸
wdith = floor(800*1/4);向下取整
height = floor(600*1/4);
结果缩放后的图片变为200*150
5.创建目标图像资源
用这个imagecreatetruecolor函数,创建一个真彩的图像
6.等比缩放
用这个imagecopyresampled函数实现缩放
7.输出图像
用这个outputimage函数(自定义函数)
8.释放图片资源
用这个imagedestroy函数
缩放前后如图:
750*525
200*140
代码如下:
/** * @function 等比缩放函数(以保存的方式实现) * @param string $picname 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return string 返回后的图片名称(带路径),如a.jpg --> s_a.jpg */functionscalepic($picname,$maxx=100,$maxy=100,$pre='s_'){$info = getimagesize($picname); //获取图片的基本信息$width = $info[0];//获取宽度$height = $info[1];//获取高度//判断图片资源类型并创建对应图片资源$im = getpictype($info[2],$picname); //计算缩放比例$scale = ($maxx/$width)>($maxy/$height)?$maxy/$height:$maxx/$width; //计算缩放后的尺寸$swidth = floor($width*$scale); $sheight = floor($height*$scale); //创建目标图像资源$nim = imagecreatetruecolor($swidth,$sheight); //等比缩放 imagecopyresampled($nim,$im,0,0,0,0,$swidth,$sheight,$width,$height); //输出图像$newpicname = outputimage($picname,$pre,$nim); //释放图片资源 imagedestroy($im); imagedestroy($nim); return$newpicname;}/** * function 判断并返回图片的类型(以资源方式返回) * @param int $type 图片类型 * @param string $picname 图片名字 * @return 返回对应图片资源 */functiongetpictype($type,$picname){$im=null; switch($type) { case1: //gif$im = imagecreatefromgif($picname); break; case2: //jpg$im = imagecreatefromjpeg($picname); break; case3: //png$im = imagecreatefrompng($picname); break; case4: //bmp$im = imagecreatefromwbmp($picname); break; default: die(不认识图片类型); break; } return$im;}/** * function 输出图像 * @param string $picname 图片名字 * @param string $pre 新图片名前缀 * @param resourse $nim 要输出的图像资源 * @return 返回新的图片名 */functionoutputimage($picname,$pre,$nim){$info = getimagesize($picname); $picinfo = pathinfo($picname); $newpicname = $picinfo['dirname'].'/'.$pre.$picinfo['basename'];//输出文件的路径switch($info[2]) { case1: imagegif($nim,$newpicname); break; case2: imagejpeg($nim,$newpicname); break; case3: imagepng($nim,$newpicname); break; case4: imagewbmp($nim,$newpicname); break; } return$newpicname;}
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了 php等比缩放图片,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息