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 相关文章推荐
编译问题
Oct 09 PHP
漂亮但不安全的CTB
Oct 09 PHP
解析PHP的session过期设置
Jun 29 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
destoon找回管理员密码的方法
Jun 21 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
php文件管理基本功能简单操作
Jan 16 PHP
php的lavarel框架中join和orWhere的用法
Dec 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
php使用session二维数组实例
2014/11/06 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
php创建图像具体步骤
2017/03/13 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
python基于Selenium的web自动化框架
2019/07/14 Python
python-地图可视化组件folium的操作
2020/12/14 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
团组织关系介绍信
2014/01/12 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
公司授权委托书范本
2014/04/03 职场文书
招股说明书范本
2014/05/06 职场文书
销售经理工作检讨书
2015/02/19 职场文书
教育读书笔记
2015/07/02 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python