PHP图片处理之使用imagecopyresampled函数实现图片缩
网站优化不能只定在代码上,内容也是网站最需要优化的对象之一,而图像又是网站中最主要的内容。图像的优化最需要处理的就是将所有上传到网站中的大图片自动缩放称小图(在网页中大小够用就行),以减少N倍的存储空间,并提高下载浏览的速度。所以图片缩放成一个动态网站必须要处理的任务,经常和文件上传绑定在一起工作,能在上传图片的就调整其大小。有时也需要单独处理图片缩放,例如在做图片列表时,如果直接用大图而在显示时才将其缩放成小图,这样做不仅下载速度会变慢,也会降低页面响应时间。通常遇到这样的应用都是在上传图片时,再为图片缩放出一个专门用来做列表的小图标,当单击这个小图标时,才会去下载大图浏览。
使用GD库处理图片缩放,通常使用imagecopyresized()和imagecopyresampled()两个函数中的一个,而使用imagecopyresampled()函数处理后质量会更好一些。这里只介绍一下imagecopyresampled()函数的使用方法。该函数的原型如下所示
bool imagecopyresampled(resource dst_image,resource src_image,int dst_x,int dst_y,int src_x,int src_y,int dst_w,int dst_h ,int src_w,int src_h)
该函数将一幅图像中的正方形区域复制到另一个图像中,平滑地插入像素值,减小了图像的大小而仍然保持了极高的清晰度。如果成功,则返回TRUE,失败则返回FALSE。参数dst_image和src_image分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸,坐标指的是左上角。本函数可用来在同一幅图内部复制(如果dst_image和src_image相同的话)但如果区域交迭,则结果不可预知。在狼蚁网站SEO优化的示例中,以JPEG图片格式为例,编写一个图像缩放的函数thumb(),代码如下所示
<?php
//用于对图片进行缩放
function thumb($filename,$width=200,$height=200){
//获取原图像$filename的宽度$width_orig和高度$height_orig
list($width_orig,$height_orig) = getimagesize($filename);
//根据参数$width和$height值,换算出等比例缩放的高度和宽度
if ($width && ($width_orig<$height_orig)){
$width = ($height/$height_orig)$width_orig;
}else{
$height = ($width / $width_orig)$height_orig;
}
//将原图缩放到这个新创建的图片资源中
$image_p = imagecreatetruecolor($width, $height);
//获取原图的图像资源
$image = imagecreatefromjpeg($filename);
//使用imagecopyresampled()函数进行缩放设置
imagecopyresampled($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig);
//将缩放后的图片$image_p保存,100(质量最佳,文件最大)
imagejpeg($image_p,$filename);
imagedestroy($image_p);
imagedestroy($image);
}
thumb("brophp.jpg",100,100);
?>
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程