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