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 相关文章推荐
php桌面中心(一) 创建数据库
Mar 11 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
php常用正则函数实例小结
Dec 29 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
php双层循环(九九乘法表)
Oct 23 PHP
浅谈php调用python文件
Mar 29 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
php empty函数 使用说明
2009/08/10 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
WordPress网站性能优化指南
2015/11/18 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
Python抽象类的新写法
2015/06/18 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android