乐趣区

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

退出移动版