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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
PHP学习记录之数组函数
Jun 01 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 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检测文件编码的方法示例
2014/04/25 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
React 实现拖拽功能的示例代码
2019/01/06 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
小程序实现录音功能
2020/09/22 Javascript
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python中的列表与元组的使用
2019/08/08 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
Servlet的生命周期
2013/08/25 面试题
三好学生自我鉴定
2013/12/17 职场文书
读书心得体会
2013/12/28 职场文书
带薪年假请假条
2014/02/04 职场文书
综治工作心得体会
2014/09/11 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
董事长助理岗位职责
2015/02/11 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python