时间:2021-07-01 10:21:17 帮助过:1人阅读
新建文件index.php,需要在统计目录下有个图片为q.jpg(可根据源码进行更改图片的名称)
源代码如下:
输出新图片、另存为 imagejpeg($new, "q1.jpg"); imagedestroy($new); imagedestroy($img); ?>
- <?php
- $filename="q.jpg";
- $per=0.3;
- list($width, $height)=getimagesize($filename);
- $n_w=$width*$per;
- $n_h=$height*$per;
- $new=imagecreatetruecolor($n_w, $n_h);
- $img=imagecreatefromjpeg($filename);
- //拷贝部分图像并调整
- imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
- //图像
使用浏览器运行过后,在index.php同级的目录下会有个q1.jpg,这个图片就是等比例缩放后的图片,路径可以自己在源代码里面更改,放在自己的项目当中去或写个方法也行
有时上传图片时因为图片太大了,不仅占用空间,消耗流量,而且影响浏(图片的尺寸大小不一)。下面分享一种等比例不失真缩放图片的方法,这样,不管上传的图片尺有多大,都会自动压缩到我们设置尺寸值的范围之内。经过测试,证明实用。
- <?php
- function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
- {
- $pic_width = imagesx($im);
- $pic_height = imagesy($im);
- if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))
- {
- if($maxwidth && $pic_width>$maxwidth)
- {
- $widthratio = $maxwidth/$pic_width;
- $resizewidth_tag = true;
- }
- if($maxheight && $pic_height>$maxheight)
- {
- $heightratio = $maxheight/$pic_height;
- $resizeheight_tag = true;
- }
- if($resizewidth_tag && $resizeheight_tag)
- {
- if($widthratio<$heightratio)
- $ratio = $widthratio;
- else
- $ratio = $heightratio;
- }
- if($resizewidth_tag && !$resizeheight_tag)
- $ratio = $widthratio;
- if($resizeheight_tag && !$resizewidth_tag)
- $ratio = $heightratio;
- $newwidth = $pic_width * $ratio;
- $newheight = $pic_height * $ratio;
- if(function_exists("imagecopyresampled"))
- {
- $newim = imagecreatetruecolor($newwidth,$newheight);//PHP系统函数
- imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数
- }
- else
- {
- $newim = imagecreate($newwidth,$newheight);
- imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
- }
- $name = $name.$filetype;
- imagejpeg($newim,$name);
- imagedestroy($newim);
- }
- else
- {
- $name = $name.$filetype;
- imagejpeg($im,$name);
- }
- }
- //使用方法:
- $im=imagecreatefromjpeg("./20140416103023202.jpg");//参数是图片的存方路径
- $maxwidth="600";//设置图片的最大宽度
- $maxheight="400";//设置图片的最大高度
- $name="123";//图片的名称,随便取吧
- $filetype=".jpg";//图片类型
- resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//调用上面的函数
以上就是php实现图片等比例缩放代码并且不是失真的方法的详细内容,更多请关注Gxl网其它相关文章!