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

 更新时间:2011年02月11日 02:26:19   作者:  
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数组的维度

    如何判断php数组的维度

    本篇文章是对判断php数组维度的代码进行了详细的分析介绍, 需要的朋友参考下
    2013-06-06
  • php获取给定日期相差天数的方法分析

    php获取给定日期相差天数的方法分析

    这篇文章主要介绍了php获取给定日期相差天数的方法,结合具体实例形式分析了2种日期相差天数的计算方法,涉及php日期字符串转换的相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • PHP危险函数禁用深入详解

    PHP危险函数禁用深入详解

    这篇文章主要介绍了PHP危险函数禁用深入详解,列举了一些比较敏感的函数,有感兴趣的同学可以学习下
    2021-03-03
  • PHP最常用的ini函数分析 针对PHP.ini配置文件

    PHP最常用的ini函数分析 针对PHP.ini配置文件

    php的配置函数就是几个ini_*的函数,主要是针对配置文件的操作,其实就四个函数:ini_get、ini_set、ini_get_all、ini_restore。个人感觉最有用的就是ini_set和ini_get。
    2010-04-04
  • PHP中使用foreach和引用导致程序BUG的问题介绍

    PHP中使用foreach和引用导致程序BUG的问题介绍

    PHP 引用有些类似 C 语言指针, 但一些重要的特性和 C 语言指针不一样, 如果不注意, 会导致程序 BUG. foreach 操作的是数组或对象的拷贝, 但 PHP5, 可以使用引用操作对象元素本身
    2012-09-09
  • PHP实现无限极分类生成分类树的方法

    PHP实现无限极分类生成分类树的方法

    这篇文章主要介绍了PHP实现无限极分类生成分类树的方法,结合实例形式简单分析了无限极分类的原理与实现方法,涉及PHP数组遍历与判断相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 详解PHP中的Traits

    详解PHP中的Traits

    本文介绍了PHP中的Traits,Traits是一种为类似PHP的单继承语言而准备的代码复用机制,需要的朋友可以参考下
    2015-07-07
  • php判断当前操作系统类型

    php判断当前操作系统类型

    这篇文章主要介绍了php判断当前操作系统类型,分为两种情况一种是服务器端,一种是客户端,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • php使用Swoole与WebSocket实现弹幕效果的示例代码

    php使用Swoole与WebSocket实现弹幕效果的示例代码

    在本文中,我们将深入探讨如何使用Swoole与WebSocket结合,实现弹幕效果,并着重强调需要注意的关键地方,以确保我们的弹幕系统能够高效、稳定地运行,感兴趣的朋友可以参考下
    2024-02-02
  • 小谈php正则提取图片地址

    小谈php正则提取图片地址

    最近在开发程序的时候需要获取提取内容中的图片地址,这里简单分享下方法,需要的朋友可以参考下
    2014-03-03

最新评论