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

2015-01-24信息快讯网

php有专门处理图片的函数,对于一些要求较高的图片缩放,php也能做到。

首先使用一个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之数组(遍历顺序) Laruence原创
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Php中文件下载功能实现超详细流程分析
php异常处理技术,顶级异常处理器
PHP的异常处理类Exception的使用及说明
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
php提示undefined index的几种解决方法
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
通过PHP修改Linux或Unix口令的方法分享
php数组函数序列之array_unique() - 去除数组中重复的元素值
让Json更懂中文(JSON_UNESCAPED_UNICODE)
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
php.ini中date.timezone设置分析
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
php中神奇的fastcgi_finish_request
适用于php-5.2 的 php.ini 中文版[金步国翻译]
php中获取关键词及所属来源搜索引擎名称的代码
让PHP以ROOT权限执行系统命令的方法
PHP开发中常用的字符串操作函数
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
php 数组的指针操作实现代码
PHP游戏编程25个脚本代码
延长phpmyadmin登录时间的方法
php INI配置文件的解析实现分析
php array_unique之后json_encode需要注意
从php核心代码分析require和include的区别
深入理解PHP之require/include顺序 推荐
linux下删除7天前日志的代码(php+shell)
在PHP中使用curl_init函数的说明
php运行出现Call to undefined function curl_init()的解决方法
php UTF-8、Unicode和BOM问题
PHP最常用的ini函数分析 针对PHP.ini配置文件
Fatal error: Call to undefined function curl_init()解决方法
©2014-2024 dbsqp.com