通过 php 进行简单的缩略图裁剪
2015-12-28 12:08
676 查看
上一话我们写了简单的通过js+css做裁图处理
但是那个有一个缺点,如果img是隐藏的,则js无法读取高度所以无法处理
这一话我们来说一下php进行处理,和上一篇写的如果能做到互补的作用,因为php处理的话无疑会消耗服务器的运算能力和存储,所以还是要谨慎考虑是否需要用到php进行动态切图
用法也很简单,直接将这个类的实例输出就是我们想要的已经处理好的图片,输出格式大致为
但是那个有一个缺点,如果img是隐藏的,则js无法读取高度所以无法处理
这一话我们来说一下php进行处理,和上一篇写的如果能做到互补的作用,因为php处理的话无疑会消耗服务器的运算能力和存储,所以还是要谨慎考虑是否需要用到php进行动态切图
public function img() { //获取缩略图地址,这个是我自己的类的内容 可以不用看,就是根据id获取缩略图即可 $blog_article_id = (int)$this->request->get['blog_article_id']; $article_info = $this->model_article_article->getArticle($blog_article_id); if ($article_info['image']) { $thumb = $article_info['image']; } else { $thumb = ''; } //获取缩略图的详细数据 $array = getimagesize($thumb); //获取缩略图 switch ($array[2]) { case 1: $src_im = @imagecreatefromgif($thumb); header("Content-type: image/gif"); break; case 2: $src_im = @imagecreatefromjpeg($thumb); header("Content-type: image/jpeg"); break; case 3: $src_im = @imagecreatefrompng($thumb); header("Content-type: image/png"); break; } /* 如果获取缩略图失败 */ if(!$src_im) { /* 建立一个新图 */ $src_im = imagecreatetruecolor(150, 30); $bgc = imagecolorallocate($src_im, 255, 255, 255); $tc = imagecolorallocate($src_im, 0, 0, 0); imagefilledrectangle($src_im, 0, 0, 150, 30, $bgc); /* 输出报错图 */ imagestring($src_im, 1, 5, 5, 'Error loading ' . $thumb, $tc); imagejpeg($src_im); imagedestroy($src_im); exit(); } //创建目标图像 $dst_im = imagecreatetruecolor($array[0], $array[0]*0.618 ); //拷贝源图像固定比例区域 imagecopy( $dst_im, $src_im, 0, 0, 0, ($array[1]-$array[0]*0.618)/2, $array[0], $array[0]*0.618 ); switch ($array[2]) { case 1: //输出拷贝后图像 imagegif($dst_im); break; case 2: //输出拷贝后图像 imagejpeg($dst_im); break; case 3: //输出拷贝后图像 imagepng($dst_im); break; } //输出后清除内存 imagedestroy($dst_im); imagedestroy($src_im); }
用法也很简单,直接将这个类的实例输出就是我们想要的已经处理好的图片,输出格式大致为
<img src="index.php&aid=1" > <img src="index.php&aid=2" > <img src="index.php&aid=3" >
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料