温馨提示: 这篇文章于2168天前编写,现在可能不再适用或落后.

制作网站的时候肯定会用到图片,那么一个正常的网站(前端+后台)那肯定会有图片了,图片难免会有大图或小图,当别人访问你网站的时候首页比如有4张幻灯片图片,每张都1M左右也就意味着别人访问网站首先需要花费4M的流量进入网站,而你网站服务器带宽如果很慢那就注定了别人访问网站的速度,一个优秀的网站必定会有首页图片的缩略图,不然别人访问网站就会非常慢!

PHP有专用的图片处理函数,PHP的GD库就能够帮助我们制作图片、打水印、获取图像信息、制作登陆验证码等等强大的功能。

PHPAPI文档中明确的给出了很多图片处理函数,这里我们对于处理图片尺寸只需要几个即可。

上图是使用表单上传图片后进行处理后的自定义尺寸图片。

HTML代码只需要一个file类型表单和一个submit按钮即可,form的enctype类型在PHP中明确要求使用multipart/form-data

HTML:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="img"/>
    <input type="submit" value="上传" name="upload"/>
</form>
```PHP处理图片:

  
<?php if(@$_POST['upload']) { if (is_uploaded_file($_FILES['img']['tmp_name'])) {//判断是否是https post上传 $upimg = $_FILES['img']['tmp_name']; $type = $_FILES['img']["type"]; $name = $_FILES['img']['name']; switch ($type) {//判断上传的图片类型 case 'image/jpeg': $upload = 1; break; case 'image/png': $upload = 1; break; case 'image/bmp': $upload = 1; break; case 'image/gif': $upload = 1; break; default: echo "上传图片失败,请检查文件类型,当前持:Jpg,Png,Bmp,Gif格式!"; } if (@$upload == 1) {//判断是否是上面4个类型中的其中一个 $path = 'upimg/' . $name; move_uploaded_file($upimg, $path); //上传完成后调用处理图片自定义函数 user_avart($path, $name, $type); } } } function user_avart($path,$name,$type){ $img = $path; $width = 100;//设置新图片的宽度及高度,如果不用固定宽度高度,可以判断当前高度宽度来设置 $height= 100; list($width_max, $height_max) = getimagesize($img);//getimagesize用list直接获取图片信息的数组0和1的位置数据 $images = imagecreatetruecolor($width,$height);//新建真彩图片 switch($type) {//判断图片类型 //开始将刚才上传的图片创建一张(必须确保刚才上传的图片已经处于服务器文件夹中) case 'image/jpeg': $im = imagecreatefromjpeg($path); break; //png格式需要注意透明度必须用imagealphablending和imagesavealpha保留,否则会出现黑色背景作为透明背景 case 'image/png': $im = imagecreatefrompng($path); imagealphablending($images, false); imagesavealpha($images, true); break; case 'image/gif': $im = imagecreatefromgif($path); break; case 'image/bmp': $im = imagecreatefromwbmp($path); break; default: echo "错误!"; } //拷贝图片至新图片 参数: //新图片->源图片->新图片开始位置X->新图片位置Y->源图片X->源图片Y->新图片宽度->新图片高度->源图片高度->源图片宽度 imagecopyresampled($images,$im,0,0,0,0,$width,$height,$width_max,$height_max); switch($type) {//再次判断类型 //输出图片到upimg/目录下 jpeg类型可以有第三个参数: 类型为整数,设置清晰度 case 'image/jpeg': imagejpeg($images, "upimg/avart_" . $name); break; case 'image/png': imagepng($images, "upimg/avart_" . $name); break; case 'image/gif': imagegif($images, "upimg/avart_" . $name); break; case 'image/bmp': imagewbmp($images, "upimg/avart_" . $name); break; default: echo "错误!"; } imagedestroy($images);//关闭图片内存 } ?>

```

写完上面代码,我拿到编辑器里面是可以实现的,以上支持4种图片转换,输出的图片类型和上传的类型相同 图片尺寸函数很简单,以上处理是4种常用图片的处理尺寸方法

    阁下需要登录后才可以查看评论哦~

    随便看看

      载入中...

      正在准备穿越次元,阁下请稍等片刻~