您的位置:首页 > 其它

缩略图实现思路

2016-05-27 21:03 417 查看
缩略图的主要是先思路如下

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/5/27
* Time: 14:49
*/

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

header("content-type:text/html;charset=utf-8");

//首先封装一个类 类里定义 的参数  上面有注释

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);

case  2:/*jpg*/
$im = imagecreatefromjpeg($picname);
break;
case  3:/*png*/
$im = imagecreatefrompng($picname);
break;
default:
die("图片类型错误!");

}

//    计算缩放比例
if (($maxx / $w) > ($maxy / $w)) {
$b = $maxy / $w;
} else {
$b = $maxx / $w;
}
//    echo $b;
//      计算缩放后的尺寸
$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('./image/picture.jpg',200,200,"ss_"); //
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: