PHP生成同比例的缩略图实现程序
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-18 15:40:06 浏览: 评论:0
在php中生成缩略图是程序开发中常用的,下面我找了几个不错的php生成缩略图的实现程序,有需要的朋友可使用,本人亲测绝对好用.
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑,代码如下:
- /**********************
- *@filename - path to the image
- *@tmpname - temporary path to thumbnail
- *@xmax - max width
- *@ymax - max height
- */
- function resize_image($filename, $tmpname, $xmax, $ymax)
- {
- $ext = explode(".", $filename);
- $ext = $ext[count($ext)-1];
- if($ext == "jpg" || $ext == "jpeg")
- $im = imagecreatefromjpeg($tmpname);
- elseif($ext == "png")
- $im = imagecreatefrompng($tmpname);
- elseif($ext == "gif")
- $im = imagecreatefromgif($tmpname);
- $x = imagesx($im);
- $y = imagesy($im);
- if($x <= $xmax && $y <= $ymax)
- return $im;
- if($x >= $y) {
- $newx = $xmax;
- $newy = $newx * $y / $x;
- }
- else {
- $newy = $ymax;
- $newx = $x / $y * $newy;
- }
- $im2 = imagecreatetruecolor($newx, $newy);
- imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);
- return $im2;
- }
- //例2,代码如下
- //开源代码phpfensi.com
- function creat_thumbnail($img,$w,$h,$path)
- {
- $org_info = getimagesize($img); //获得图像大小且是通过post传递过来的
- //var_dump($org_info);
- //Array ( [0] => 1024 [1] => 768 [2] => 3 [3] => width="1024" height="768" [bits] => 8 [mime] => image/png )
- $orig_x = $org_info[0]; //图像宽度
- $orig_y = $org_info[1]; //图像高度
- $orig_type = $org_info[2]; //图片类别即后缀 1 = GIF,2 = JPG,3 = PNG,
- //是真彩色图像
- if (function_exists("imagecreatetruecolor"))
- {
- switch($orig_type)
- {
- //从给定的gif文件名中取得的图像
- case 1 : $thumb_type = ".gif"; $_creatImage = "imagegif"; $_function = "imagecreatefromgif";
- break;
- //从给定的jpeg,jpg文件名中取得的图像
- case 2 : $thumb_type = ".jpg"; $_creatImage = "imagejpeg"; $_function = "imagecreatefromjpeg";
- break;
- //从给定的png文件名中取得的图像
- case 3 : $thumb_type = ".png"; $_creatImage = "imagepng"; $_function = "imagecreatefrompng";
- break;
- }
- }
- //如果从给定的文件名可取得的图像
- if(function_exists($_function))
- {
- $orig_image = $_function($img); //从给定的$img文件名中取得的图像
- }
- if (($orig_x / $orig_y) >= (4 / 3)) //如果宽/高 >= 4/3
- {
- $y = round($orig_y / ($orig_x / $w)); //对浮点数进行四舍五入
- $x = $w;
- }
- else //即 高/宽 >= 4/3
- {
- $x = round($orig_x / ($orig_y / $h));
- $y = $h;
- }
- $sm_image = imagecreatetruecolor($x, $y); //创建真彩色图片
- //重采样拷贝部分图像并调整大小
- Imagecopyresampled($sm_image, $orig_image, 0, 0, 0, 0, $x, $y, $orig_x, $orig_y);
- //imageJPEG($sm_image, '', 80); //在浏览器输出图像
- $tnpath = $path."/"."s_".date('YmdHis').$thumb_type; //缩略图的路径
- $thumbnail = @$_creatImage($sm_image, $tnpath, 80); //生成图片,成功返回true(或1)
- imagedestroy ($sm_image); //销毁图像
- if($thumbnail==true)
- {
- return $tnpath;
- }
- }
Tags: PHP生成缩略图 实现程序
- 上一篇:PHP智能把图片生成缩略图类
- 下一篇:php生成缩略图类
相关文章
- ·php生成缩略图的例子(2014-06-19)
- ·php简单实用生成缩略图代码(2014-08-17)
- ·php生成缩略图类(2014-08-18)
- ·php生成缩略图经典类(2014-08-19)
- ·php生成缩略图类,支持自定义高和宽,还支持按高和宽截图(2014-08-19)
- ·php图片按比较生成缩略图片代码(2014-08-19)
- ·php图片处理类,生成缩略图,增加水印,获取图片信息(2014-08-19)
- ·php图片上传并生成缩略图效果(2014-08-19)
- ·php按比例生成缩略图代码(2014-08-19)
- ·php生成缩略图,文本转换成图形(2014-08-19)
- ·php 生成缩略图代码(2014-08-19)
- ·php大图生成小图代码(2014-08-19)
- ·php支持生成缩略图文件上传代码(2014-08-19)
- ·php按比例生成缩略图代码(2014-08-19)
- ·php生成缩略图代码(2014-08-20)
- ·php生成缩略图代码(2014-08-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)