PHP实现图片的等比缩放

PHP实现图片的等比缩放

本文主要介绍了PHP实现图片的等比缩放功能,结合实例形式分析了php图片等比例缩放操作技巧
等比缩放函数(以保存的方式实现)
代码:
[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
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
57
58
59
60
61
62
63
<?php
/**

  • 等比缩放函数(以保存的方式实现)
  • @param string $picname 被缩放的处理图片源
  • @param int $maxx 缩放后图片的最大宽度
  • @param int $maxy 缩放后图片的最大高度
  • @param string $pre 缩放后图片名的前缀名
  • @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg

*/
function imageUpdateSize($picname,$maxx=100,$maxy=100,$pre=”s_”){

 $info = getimageSize($picname); //获取图片的基本信息
 $w = $info[0];//获取宽度
 $h = $info[1];//获取高度
 //获取图片的类型并为此创建对应图片资源
 switch($info[2]){
     case 1: //gif
         $im = imagecreatefromgif($picname);
     break;
     case 2: //jpg
         $im = imagecreatefromjpeg($picname);
     break;
     case 3: //png
         $im = imagecreatefrompng($picname);
     break;
     default:
     die("图片类型错误!");
 }
 //计算缩放比例
 if(($maxx/$w)>($maxy/$h)){
     $b = $maxy/$h;
 }else{
     $b = $maxx/$w;
 }
 //计算出缩放后的尺寸
 $nw = floor($w*$b);
 $nh = floor($h*$b);
 //创建一个新的图像源(目标图像)
 $nim = imagecreatetruecolor($nw,$nh);
 //执行等比缩放
 imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
 //输出图像(根据源图像的类型,输出为对应的类型)
 $picinfo = pathinfo($picname);//解析源图像的名字和路径信息
 $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
 switch($info[2]){
     case 1:
         imagegif($nim,$newpicname);
     break;
     case 2:
         imagejpeg($nim,$newpicname);
     break;
     case 3:
         imagepng($nim,$newpicname);
     break;
 }
 //释放图片资源
 imagedestroy($im);
 imagedestroy($nim);
 //返回结果
 return $newpicname;

}
//测试:
echo imageUpdateSize(“./images/logo.png”,200,200,”ss_”);
?>
测试效果:

更多技术资讯可关注:gzitcast

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理