php批量缩放图片的代码[ini参数控制]


Posted in PHP onFebruary 11, 2011

首先使用一个ini文件来设置要缩放的大小,其中为宽或高0的则为图片放大或缩小,都为0则还是原大小,都不为0都拉抻成指定的大小。

注意:ini文件使用php解释时为注释文件,什么也没有输出,这是为了安全起见而故意为之。而;则是ini文件的注释。

我设置的ini文件例子如下:

<?php 
/* 
;Translate the image format using the original image size 
[Translation] 
width=0 
height=0 ;Stretch the image to the specified size 
[Stretch] 
width=800 
height=600 
;Zoom the image to the specified Width with height auto size 
[AutoHeight] 
width=740 
height=0 
;Zoom the image to the specified Height with width auto size 
[AutoWidth] 
width=0 
height=380 
*/ 
?>

下面是编写的缩放图片的php代码,其中变量classes是一个数组,可以选择任意多个ini文件中指定的设置:
<?php 
$oimg = "test.jpg";//Original image name 
$classes = array('Translation','AutoHeight','AutoWidth','Stretch');//Give classes for the new creating images' size which are defined in the specified ini file 
$suffix = 'jpg';//The new image's suffix 
$inifile = 'image.ini.php'; $size = getimagesize($oimg); 
$x = $size[0]/$size[1]; 
$name = explode('.',$oimg); 
if(!file_exists($inifile)) die('Ini file does not exist!'); 
$cn = parse_ini_file($inifile,true);//Parse the class style image size from ini file 
foreach($classes as $class){ 
foreach($cn as $k=>$v){ 
if($k==$class){ 
if($v['width'] && $v['height']){ 
$thumbWidth = $v['width']; 
$thumbHeight = $v['height']; 
}elseif($v['width']){ 
$thumbWidth = $v['width']; 
$thumbHeight = round($thumbWidth/$x); 
}elseif($v['height']){ 
$thumbHeight = $v['height']; 
$thumbWidth = round($thumbHeight*$x); 
}else{ 
$thumbWidth = $size[0]; 
$thumbHeight = $size[1]; 
} 
break; 
} 
} 
if(!isset($thumbHeight) && !isset($thumbWidth)) die('Ini file Settings error!'); 
$nimg = $name[0].'_'.$class.'.'.$suffix;//New image file name 
$source = imagecreatefromjpeg($oimg); 
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight); 
imagecopyresampled($thumb,$source,0,0,0,0,$thumbWidth,$thumbHeight,$size[0],$size[1]); 
if($suffix=='jpg') $method = 'imagejpeg'; 
else $method='image'.$suffix; 
$method($thumb, $nimg); 
imagedestroy($thumb);//Release the image source 
imagedestroy($source); 
} 
?>
PHP 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
社区(php&amp;&amp;mysql)二
Oct 09 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
解析php5配置使用pdo
Jul 03 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
Laravel 5 学习笔记
Mar 06 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 #PHP
PHP开发中常用的字符串操作函数
Feb 08 #PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 #PHP
php 数组的指针操作实现代码
Feb 08 #PHP
PHP游戏编程25个脚本代码
Feb 08 #PHP
PHP通用检测函数集合
Feb 08 #PHP
.htaccess文件保护实例讲解
Feb 06 #PHP
You might like
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python list元素为tuple时的排序方法
2018/04/18 Python
Python3数字求和的实例
2019/02/19 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
init进程的作用
2015/08/20 面试题
食品采购员岗位职责
2014/04/14 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
新郎结婚保证书
2015/02/26 职场文书