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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
PHP面向对象编程快速入门
Dec 14 PHP
快速开发一个PHP扩展图文教程
Dec 12 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
php 数据结构之链表队列
Oct 17 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
Python可变参数用法实例分析
2017/04/02 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
python多线程并发及测试框架案例
2019/10/15 Python
Django 返回json数据的实现示例
2020/03/05 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
三年级音乐教学反思
2014/01/28 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
社区活动总结范文
2015/05/07 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技