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脚本
Nov 26 PHP
PHP Stream_*系列函数
Aug 01 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
php检测useragent版本示例
Mar 24 PHP
php实现简单文件下载的方法
Jan 30 PHP
php简单日历函数
Oct 28 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
php上传图片类及用法示例
May 11 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
js 页面输出值
2008/11/30 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
Python 在函数上添加包装器
2020/07/28 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
几个SQL的面试题
2014/03/08 面试题
小学开学寄语
2014/01/19 职场文书
《西门豹》教学反思
2016/02/23 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL