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 27 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
php的无刷新操作实现方法分析
Feb 28 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP5多态性与动态绑定介绍
2015/04/03 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
会计求职信范文
2014/05/24 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
蜗居观后感
2015/06/11 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫