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数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
php实现文件下载实例分享
Jun 02 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 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
图书管理程序(三)
2006/10/09 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
js实现五星评价功能
2017/03/08 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
python二分查找算法的递归实现方法
2016/05/12 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
HashMap和Hashtable的区别
2013/05/18 面试题
门卫岗位职责
2013/11/15 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
公司节能减排方案
2014/05/16 职场文书
廉政教育的心得体会
2014/09/01 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
AngularJS实现多级下拉框
2022/03/25 Javascript
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers