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简介
Oct 09 PHP
来自PHP.NET的入门教程
Oct 09 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
CI框架简单邮件发送类实例
May 18 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
php统计数组不同元素的个数的实例方法
Sep 26 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/06/01 PHP
php密码生成类实例
2014/09/24 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
自我鉴定书范文
2013/10/02 职场文书
党校培训自我鉴定
2014/02/01 职场文书
校庆筹备方案
2014/03/30 职场文书
安全生产管理责任书
2014/04/16 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
党支部意见范文
2015/06/02 职场文书
三下乡活动心得体会
2016/01/23 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android