Home > php教程 > php手册 > body text

一款php批量生成缩略图代码

WBOY
Release: 2016-06-13 09:48:46
Original
719 people have browsed it

$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代码,其中变量classes是一个数组,可以选择任意多个ini文件中指定的设置:

这是一个ini配置文件,上面的代码就要读取这个文件中的图片位置,可以多个。

;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
*/ ?>

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!