缩略图实现思路
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_"); // ?>
相关文章推荐
- poj 1015 Jury Compromise
- linux下的简单文件读写锁的操作
- 排序算法之插入排序
- 关于easyui grid中的load,reload,loadData区别
- Win7主机安装VMWare虚拟机配置,使得主机与虚拟机之间互通且虚拟机正常上网
- Android AsyncTask介绍
- Learning OpenCV: cvPyrDown and display video
- viewpager+fragment来回滑动fragment重新加载的简单解决办法
- c++第六次作业
- java nio 读取大文件
- Latex:表格制作全攻略
- 深入学习java集合:JAVA集合类主要接口
- 进一步学习MVC框架
- Extjs gridPanel 小计保存不上
- LaTex:图片排版
- hdu 5690(模运算)
- hdu 3790 最短路径问题(打印路径)
- 浅析MSIL中间语言——PE文件结构篇(转)
- hdu 3400(三分)
- bzoj2049 LCT