|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。 在PHP网站开辟过程当中,假如你创立的网站触及大批的图片处置,必定触及到图片上传,缩放,而若何坚持图片不掉真,是良多低级PHP网站开辟者对照头疼的一件事,明天David就和人人分享一下若何停止图片缩放。利用之前你需求下载装置GD库,以撑持PHP图片处置。上面咱们联合代码解说详细的PHP图片缩放处置的思绪。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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);
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
}
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()读取图片对象,假如PHP情况撑持PNG,GIF,也可以使用imagecreatefromgif(),imagecreatefrompng();
$maxwidth 界说生成图片的最大宽度(单元:像素)
$maxheight 生成图片的最大高度(单元:像素)
$name 生成的图片名
$filetype 终究生成的图片类型(.jpg/.png/.gif)
代码正文:
第3~4行:读取需求缩放的图片实践宽高
第8~26行:经由过程盘算实践图片宽高与需求生成图片的宽高的紧缩比例终究得出停止图片缩放是依据宽度仍是高度停止缩放,以后法式是依据宽度停止图片缩放。假如你想依据高度停止图片缩放,你可以将第22行的语句改成$widthratio>$heightratio
第28~31行:假如实践图片的长度或宽度小于划定生成图片的长度或宽度,则要末依据长度停止图片缩放,要末依据宽度停止图片缩放。
第33~34行:盘算终究缩放生成的图片长宽。
第36~45行:依据盘算出的终究生成图片的长宽改动图片巨细,有两种改动图片巨细的办法:ImageCopyResized()函数在一切GD版本中无效,但其缩放图象的算法对照粗拙。ImageCopyResamples(),其像素插值算法失掉的图象边沿对照光滑,但该函数的速度比ImageCopyResized()慢。
第47~49行:终究生成经由处置后的图片,假如你需求生成GIF或PNG,你需求将imagejpeg()函数改成imagegif()或imagepng()
第51~56行:假如实践图片的长宽小于划定生成的图片长宽,则坚持图片原样,同理,假如你需求生成GIF或PNG,你需求将imagejpeg()函数改成imagegif()或imagepng()。
出格申明:
GD库1.6.2版之前撑持GIF格局,但因GIF格局利用LZW演算法牵扯专利权,因而在GD1.6.2版以后不撑持GIF的格局。假如你是WINDOWS的情况,你只需进入PHP.INI文件找到extension=php_gd2.dll,将#去除,重启APACHE便可,假如你是Linux情况,又想撑持GIF,PNG,JPEG,你需求去下载libpng,zlib,和freetype字体并装置。
OK,PHP图片紧缩函数完成,最初咱们概述一下全部处置的思绪:
经由过程盘算实践图片的长宽与划定生成图片的长宽之间的缩放比例,依据实践的需求(依照宽度仍是依照高度停止图片缩放)盘算出终究生成图片的巨细,然后使用PHP图片处置函数对图片停止处置,最初输入图片。
以上就是关于PHP图片处置中若何对图片停止紧缩并坚持不掉真的函数申明,有疑问或好的建议接待给我留言,下次我将分享在PHP网站开辟建立完成后,因为图片目次没有计划好,咱们该若何对图片停止迁徙的思绪。
注:PHP网站开辟教程-leapsoul.cn版权一切,转载时请以链接模式注明原始出处及本声明,感谢。
在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。 |
|