php实现按指定大小等比缩放生成上传图片缩略图的方法
2016-02-14 14:51
1101 查看
/**
* *
*等比缩放
* @param unknown_type srcImage源图片路径∗@paramunknowntypetoFile 目标图片路径
* @param unknown_type maxWidth最大宽∗@paramunknowntypemaxHeight 最大高
* @param unknown_type imgQuality图片质量∗@returnunknown∗/functionresize(srcImage,toFile,maxWidth = 100,maxHeight=100,imgQuality=100)
{
}
* *
*等比缩放
* @param unknown_type srcImage源图片路径∗@paramunknowntypetoFile 目标图片路径
* @param unknown_type maxWidth最大宽∗@paramunknowntypemaxHeight 最大高
* @param unknown_type imgQuality图片质量∗@returnunknown∗/functionresize(srcImage,toFile,maxWidth = 100,maxHeight=100,imgQuality=100)
{
list($width, $height, $type, $attr) = getimagesize($srcImage); if($width < $maxWidth || $height < $maxHeight) return ; switch ($type) { case 1: $img = imagecreatefromgif($srcImage); break; case 2: $img = imagecreatefromjpeg($srcImage); break; case 3: $img = imagecreatefrompng($srcImage); break; } $scale = min($maxWidth/$width, $maxHeight/$height); //求出绽放比例 if($scale < 1) { $newWidth = floor($scale*$width); $newHeight = floor($scale*$height); $newImg = imagecreatetruecolor($newWidth, $newHeight); imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); $newName = ""; $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile); switch($type) { case 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality)) return "$newName.gif"; break; case 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality)) return "$newName.jpg"; break; case 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality)) return "$newName.png"; break; default: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality)) return "$newName.jpg"; break; } imagedestroy($newImg); } imagedestroy($img); return false;
}
相关文章推荐
- 在Mac OS上搭建PHP的Yii框架及相关测试环境
- PHP获取POST数据的三种方法
- THINKPHP 清除HTML注释、换行符、空格、制表符等
- 国内常用NTP服务器地址及IP
- PHP的函数应用
- phpcms 内部检测用户名长度
- Yii2 网址重写
- php socket通信(tcp/udp)实例分析
- RabbitMQ(PHP版) 中文入门教程第一部分:Hello World
- PHP检测用户是否关闭浏览器的方法
- 详解php魔术方法(Magic methods)的使用方法
- PHP浮点比较大小的方法
- PHP魔术方法使用方法汇总
- PHP学习之Mac配置Php开发环境
- PHP函数超时处理方法
- PHP使用file_get_content设置头信息的方法
- PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
- PHP缓冲区用法总结
- PHP二维数组排序简单实现方法
- php的闭包(Closure)匿名函数初探