RSS  WAP  简体中文  繁体中文  English  
高级搜索
游客:注册    ;用户登录 搜索  论坛首页  
您现在的位置:网站引擎产品论坛学习交流PHP/MYSQL交流php图像处理---生成缩略图(写的不是很好,嘿嘿,新来的)
您好,  积分:,您有0条新站内短信 最新帖子
  
主题: php图像处理---生成缩略图(写的不是很好,嘿嘿,新来的) 上一主题  下一主题
ipqvfhppdc



Level: 1
HP: 0 / 0
MP: 0 / 227
Exp: 0%

帖子: 0
积分: 0
注册时间: 2007-12-11
php图像处理---生成缩略图(写的不是很好,嘿嘿,新来的) 1楼
在php站点开发过程中经常要用到图片显示部分,而合理用缩略图会大幅提高站点的浏览速度,以下是本人在闲时编写的两个生成缩略图的函数

第一个是无损生成缩略图,只是把原图按比例缩小了

第二个是截取生成缩略图,这样也有一个好处就是界面的图片大小会完全一致,不用考虑图片会被拉伸的问题了。

由于本人技术有限,此些函数只能作为一个Demo吧,欢迎大家多提宝贵意见!!

函数仍在改进中。。。。。。

<?php


function miniature($im_url,$nim_xory,$fix,$newname,$path)
{   
/*
生成缩略图
$im_url:原始图像路经
$fix:为0固定宽$nim_xory取宽值,为1固定高$nim_xory取高值
$path:为图片存放路经,如在该目录下的smallpic文件夹中,则填smallpic,最后无须加"/"
$newname:生成缩略图的新名称
本函数现支持gif及jpg两种格式,若要支持其它格式可自行增加,方法不变
*/
$arr=getimagesize($im_url);         
$oim_x=$arr[0];            
$oim_y=$arr[1];
$im_type=end(explode(".",$im_url));
if($path=="")
{

}
else
{
$path=$path."/";
}
if($fix==0)//横向固定图片大小
{
    $gl=$nim_xory/$oim_x;
    $nim_y=$oim_y*$gl;
    if($im_type=="gif")
    {
    $im = imagecreatefromgif($im_url);
    $nim=createimagecolor($nim_xory,$nim_y,$im,$oim_x,$oim_y);
  
    imagegif($nim,$path.$newname);
    }elseif($im_type=="jpg")
    {
    $im = imagecreatefromjpeg($im_url);
    $nim=createimagecolor($nim_xory,$nim_y,$im,$oim_x,$oim_y);
  
    imagejpeg($nim,$path.$newname);
    }
    else
    {
    //此处可增加新的图片格式支持,方法参照以上内容
    }

}
else if($fix==1)//纵向固定图片大小
{
    $gl=$nim_xory/$oim_y;
    $nim_x=$oim_x*$gl;
    if($im_type=="gif")
    {
    $im = imagecreatefromgif($im_url);
    $nim=createimagecolor($nim_x,$nim_xory,$im,$oim_x,$oim_y);
    imagegif($nim,$path.$newname);
    }
    elseif($im_type=="jpg")
    {
    $im = imagecreatefromjpeg($im_url);
    $nim=createimagecolor($nim_x,$nim_xory,$im,$oim_x,$oim_y);
    imagejpeg($nim,$path.$newname);
    }
    else
    {
    //此处可增加新的图片格式支持,方法参照以上内容
    }
}
else
{
echo "警告:遇到函数不支持的图片类型!函数支持有0:gif,1:jpg";
}
imagedestroy($nim);
}


function fix_picture($im_url,$nim_x,$nim_y,$newname,$path)//固定图片按比例切取
{   

$arr=getimagesize($im_url);         
$oim_x=$arr[0];            
$oim_y=$arr[1];
$pi=$nim_x/$nim_y;
$im_type=end(explode(".",$im_url));
if(($oim_x/$oim_y)>($nim_x/$nim_y)){
  
     if($im_type=="gif"){
     $im = imagecreatefromgif($im_url);
     $nim=createimagecolor($nim_x,$nim_y,$im,$pi*$oim_y,$oim_y);
     imagegif($nim,$path.$newname);
     }elseif($im_type=="jpg")
     {
     $im = imagecreatefromjpeg($im_url);
     $nim=createimagecolor($nim_x,$nim_y,$im,$pi*$oim_y,$oim_y);
     imagejpeg($nim,$path.$newname);
     }
     else
     {
     //此处可增加新的图片格式支持,方法参照以上内容
     }

}else{
     if($im_type=="gif"){
     $im = imagecreatefromgif($im_url);
     $nim=createimagecolor($nim_x,$nim_y,$im,$oim_x,$oim_x/$pi);
     imagegif($nim,$path.$newname);
     }elseif($im_type=="jpg")
     {echo $path.$newname;
     $im = imagecreatefromjpeg($im_url);
     $nim=createimagecolor($nim_x,$nim_y,$im,$oim_x,$oim_x/$pi);
     imagejpeg($nim,$path.$newname);
     }
     else
     {
     //此处可增加新的图片格式支持,方法参照以上内容
     }
}
imagedestroy($nim);
}

function createimagecolor($pic_x,$pic_y,$pic_handle,$old_pic_x,$old_pic_y)//创建图型
{
    $nim= imagecreatetruecolor($pic_x,$pic_y);
    imagecopyresized($nim,$pic_handle,0,0,0,0,$pic_x,$pic_y,$old_pic_x,$old_pic_y);
    return $nim;
}


//$im_url="666.jpg";
//miniature($im_url,200,0,"888.jpg","newpic");
//imagedestroy($nim);
?>

___________________________________________________________

php缩略图 php图像处理 php技术    图像处理技术


关键词:处理  嘿嘿  略图  生成  图像  


07-12-11 15:49 1楼
  插入邮件地址  发短消息     回复
     
© 2002 - 2007 BOKAVAN Inc. All Rights Reserved  博卡先锋 版权所有  京ICP备06013158