Php Image Resize图片大小调整的函数代码


Posted in PHP onJanuary 17, 2011
function my_image_resize($src_file, $dst_file, $dst_width=32, $dst_height=32) { 
if($dst_width <1 || $dst_height <1) { 
echo "params width or height error !"; 
exit(); 
} 
if(!file_exists($src_file)) { 
echo $src_file . " is not exists !"; 
exit(); 
} $type=exif_imagetype($src_file); 
$support_type=array(IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF); 
if(!in_array($type, $support_type,true)) { 
echo "this type of image does not support! only support jpg , gif or png"; 
exit(); 
} 
switch($type) { 
case IMAGETYPE_JPEG : 
$src_img=imagecreatefromjpeg($src_file); 
break; 
case IMAGETYPE_PNG : 
$src_img=imagecreatefrompng($src_file); 
break; 
case IMAGETYPE_GIF : 
$src_img=imagecreatefromgif($src_file); 
break; 
default: 
echo "Load image error!"; 
exit(); 
} 
$src_w=imagesx($src_img); 
$src_h=imagesy($src_img); 
$ratio_w=1.0 * $dst_width/$src_w; 
$ratio_h=1.0 * $dst_height/$src_h; 
if ($src_w<=$dst_width && $src_h<=$dst_height) { 
$x = ($dst_width-$src_w)/2; 
$y = ($dst_height-$src_h)/2; 
$new_img=imagecreatetruecolor($dst_width,$dst_height); 
imagecopy($new_img,$src_img,$x,$y,0,0,$dst_width,$dst_height); 
switch($type) { 
case IMAGETYPE_JPEG : 
imagejpeg($new_img,$dst_file,100); 
break; 
case IMAGETYPE_PNG : 
imagepng($new_img,$dst_file); 
break; 
case IMAGETYPE_GIF : 
imagegif($new_img,$dst_file); 
break; 
default: 
break; 
} 
} else { 
$dstwh = $dst_width/$dst_height; 
$srcwh = $src_w/$src_h; 
if ($ratio_w <= $ratio_h) { 
$zoom_w = $dst_width; 
$zoom_h = $zoom_w*($src_h/$src_w); 
} else { 
$zoom_h = $dst_height; 
$zoom_w = $zoom_h*($src_w/$src_h); 
} 
$zoom_img=imagecreatetruecolor($zoom_w, $zoom_h); 
imagecopyresampled($zoom_img,$src_img,0,0,0,0,$zoom_w,$zoom_h,$src_w,$src_h); 
$new_img=imagecreatetruecolor($dst_width,$dst_height); 
$x = ($dst_width-$zoom_w)/2; 
$y = ($dst_height-$zoom_h)/2+1; 
imagecopy($new_img,$zoom_img,$x,$y,0,0,$dst_width,$dst_height); 
switch($type) { 
case IMAGETYPE_JPEG : 
imagejpeg($new_img,$dst_file,100); 
break; 
case IMAGETYPE_PNG : 
imagepng($new_img,$dst_file); 
break; 
case IMAGETYPE_GIF : 
imagegif($new_img,$dst_file); 
break; 
default: 
break; 
} 
} 
}
PHP 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
建立动态的WML站点(三)
Oct 09 PHP
简单的PHP留言本实例代码
May 09 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
PHP+MySQL插入操作实例
Jan 21 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
PHP自定义错误用法示例
Sep 28 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
php生成随机密码的几种方法
Jan 17 #PHP
PHP校验ISBN码的函数代码
Jan 17 #PHP
PHP中用正则表达式清除字符串的空白
Jan 17 #PHP
php开发环境配置记录
Jan 14 #PHP
PHP文件读写操作之文件写入代码
Jan 13 #PHP
PHP文件读写操作之文件读取方法详解
Jan 13 #PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 #PHP
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php时间计算相关问题小结
2016/05/09 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
使用python 获取进程pid号的方法
2014/03/10 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
python三引号如何输入
2020/07/06 Python
Python常用数据分析模块原理解析
2020/07/20 Python
python中如何使用虚拟环境
2020/10/14 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
构建和谐校园倡议书
2015/01/19 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
承诺书应该怎么写?
2019/09/10 职场文书