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自动加载的两种实现方法
Jun 21 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php实现将Session写入数据库
Jul 26 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
laravel 数据验证规则详解
Oct 23 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 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缓存技术的使用说明
2011/08/06 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
详解python中的index函数用法
2019/08/06 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
大门门卫岗位职责
2013/11/30 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
团队口号大全
2014/06/06 职场文书
2015年教师国培感言
2015/08/01 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
Django基础CBV装饰器和中间件
2022/03/22 Python