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

<?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代码,其中变量classes是一个数组,可以选择任意多个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
*/ ?>

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

时间: 2024-10-28 20:56:14

一款php批量生成缩略图代码的相关文章

php 批量生成缩略图代码

php 批量生成缩略图代码 //创建目录(目录, [模式]) function mkdirs($l1, $l2 = 0777){ if(!is_dir($l1)){   //如果目录不存在,递归建立   mkdirs(dirname($l1), $l2);    return @mkdir($l1, $l2); } return true; } //保存文件(文件, [内容]) function savefile($l1, $l2=''){  if(function_exists(file_pu

php 完美的批量生成缩略图代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEAD>   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   <TITLE>生成缩略图</TITLE> </HEAD>  &l

VBS调用Photoshop批量生成缩略图的代码_vbs

模仿腾讯新闻页,给KingCms添加了新闻页图片点播的代码,代码要求的图片点播格式如下: 0###yun_qi_img/@@@/small/123.gif@@@8标题一***yun_qi_img/@@@/small/456.gif@@@标题二***yun_qi_img/@@@/small/789.gif@@@标题三 格式解释如下: 0代表第0页出现图片点播: yun_qi_img/是第一幅原图地址./small/123.gif是第一幅缩略图地址,原图和缩略图名字一样,后缀不一样,原图是jpg,缩

.net 生成缩略图代码

从朋友博客找到一个款.net 生成缩略图代码,效果很不错,所以拿出来分享一下. ///         /// 生成缩略图         ///         /// 源图路径(物理路径)         /// 缩略图路径(物理路径)         /// 缩略图宽度         /// 缩略图高度         /// 生成缩略图的方式:HW,W,H,Cut            public static void MakeThumbnail(string originalIm

jsp 生成缩略图代码程序

jsp教程 生成缩略图代码程序 java.io.File file = new java.io.File(saveurl);        //读入刚才上传的文件     String newurl=request.getRealPath("/")+url+"min_"+filename+"."+ext;  //新的缩略图保存地址     Image src = javax.imageio.ImageIO.read(file);         

图片生成缩略图代码

图片生成缩略图代码 <?php # Constants define("IMAGE_BASE", './'); define("MAX_WIDTH", 150); define("MAX_HEIGHT", 150); # Get image locationstr_replace('..', '', $_SERVER['QUERY_STRING']); $image_file = 't.jpg'; $image_path = IMAGE_B

求C#写的生成缩略图代码,要求,不改变图片质量!!

问题描述 我自己写了段C#生成缩略图的代码,但上传图片后图片质量改变了!原图效果用我的代码生成缩略图后哪位能给出个不改变图片质量,只改变图片大小的生成缩略图的C#代码?谢谢! 解决方案 解决方案二:见这:http://www.cnblogs.com/myx/archive/2005/05/12/154036.html解决方案三: Imageimage=newBitmap("你的图像.bmp");ImagepThumbnail=image.GetThumbnailImage(100,10

php文件上传类可生成缩略图代码

<?php         代码如下 复制代码 if ($_GET['action'] == 'save') {                   $up = new upload();            $up->set_dir(dirname(__FILE__).'/upload/','{y}/{m}');            $up->set_thumb(100,80);            $up->set_watermark(dirname(__FILE__).

asp.net 生成缩略图代码_实用技巧

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi