免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 947 | 回复: 0
打印 上一主题 下一主题

缩略图类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-16 16:15 |只看该作者 |倒序浏览
imgType);$i++)
  {
   if(Strcmp($this->imgType[$i],$var)==0)
   {
    $this->fileType=$var;
    return true;
   }else{
    return false;
   }
  }
}
/**

[email=*@param]*@param[/email]
    $fileType     文件类型

[email=*@return]*@return[/email]
   resource      打开图片的资源句柄
*/
function loadImg($fileType)
{
  $type=$this->isNull($fileType);
  switch($type)
  {
   case "jpg":
    $im=ImageCreateFromjpeg($this->srcFile);
    break;
   case "gif":
    $im=ImageCreateFromGIF($this->srcFile);
    break;
   case "png":
    $im=imagecreatefrompng($this->srcFile);
    break;
   case "bmp":
    $im=imagecreatefromwbmp($this->srcFile);
    break;
   default:
    $im=0;
    echo "not you input file type!
";
    break;
  }
  $this->im=$im;
  return $im;
}
/**
*说明: 判断标量是否为空,不为空返回变量
*/
function isNull($var)
    {
       if(!isset($var)||empty($var))
        {
            echo "变量值为null!
";
            exit(0);
         }
         return $var;
     }
/**
*说明:   设置源文件名和生成文件名,同时完成了文件类型的确定
*    还有对文件的打开

[email=*@param]*@param[/email]
string  srcFile      目标文件

[email=*@param]*@param[/email]
String  dstFile      建立文件
*/
function setParam($srcFile,$dstFile)
{
  $this->srcFile=$this->isNull($srcFile);
  $this->dstFile=$this->isNull($dstFile);
  if(!$this->findType($srcFile))
  {
   echo "file type error!";
  }
  if(!$this->loadImg($this->fileType))
  {
   echo "open ".$this->srcFile."error!
";
  }
}
/**
*说明       取得图象的宽度

[email=*@param]*@param[/email]
    resource im      打开图象成功的资源

[email=*@return]*@return[/email]
   int      width   图象的宽度  
*/
function getImgWidth($im)
{
  $im=$this->isNull($im);
  $width=imagesx($im);
  return $width;
}
/**
*说明       取得图象的高度

[email=*@param]*@param[/email]
    resource im      打开图象成功的资源

[email=*@return]*@return[/email]
   int      height  图象的高度
*/
function getImgHeight($im)
{
  $im=$this->isNull($im);
  $height=imagesy($im);
  return $height;
}
/**
*说明        建立图象

[email=*@param]*@param[/email]
     resource im      打开图象成功的资源

[email=*@param]*@param[/email]
     int      scale   生成图象是与原图象的比例为百分比

[email=*@param]*@param[/email]
     boolean  page    是否输出到页面
*/
function createImg($im,$scale,$page)
{
  $im=$this->isNull($im);
  $scale=$this->isNull($scale);
  $srcW=$this->getImgWidth($im);
  $srcH=$this->getImgHeight($im);
  $detW=round($srcW*$scale/100);
  $detH=round($srcH*$scale/100);
  //$om=ImageCreate($detW,$detH);//普通的使用
  $om=imagecreatetruecolor($detW,$detH);//真色彩对gb库有要求
  //ImageCopyResized($om,$im,0,0,0,0,$detW,$detH,$srcW,$srcH);
  imagecopyresampled($om,$im,0,0,0,0,$detW,$detH,$srcW,$srcH);
  $this->showImg($om,$this->fileType,$page);
}
  /**
*说明        建立图象

[email=*@param]*@param[/email]
     resource im      打开图象成功的资源

[email=*@param]*@param[/email]
     int      scale   生成图象是与原图象的比例为百分比

[email=*@param]*@param[/email]
     boolean  page    是否输出到页面
*/
function createNewImg($im,$width,$height,$page)
{
  $im=$this->isNull($im);
  //$scale=$this->isNull($scale);
  $srcW=$this->getImgWidth($im);
  $srcH=$this->getImgHeight($im);
  $detW=$this->isNull($width);
  $detH=$this->isNull($height);
  //$om=ImageCreate($detW,$detH);//普通的使用
  $om=imagecreatetruecolor($detW,$detH);//真色彩对gb库有要求
  //ImageCopyResized($om,$im,0,0,0,0,$detW,$detH,$srcW,$srcH);
  imagecopyresampled($om,$im,0,0,0,0,$detW,$detH,$srcW,$srcH);
  $this->showImg($om,$this->fileType,$page);
}
/**
*说明   输出图象建立失败的提示

[email=*@param]*@param[/email]
boolean   boolean   判断是否输出
*/
function inputError($boolean)
{
  if(!$boolean)
  {
   echo "img input error!
";
  }
}
/**
*说明     根据条件显示图片输出位置和类型

[email=*@param]*@param[/email]
  resource     $om       图象输出的资源

[email=*@param]*@param[/email]
  String       $type     输出图象的类型,现在使用源图象的类型

[email=*@param]*@param[/email]
  boolean      $page     是否在页面上显示
*/
function showImg($om,$type,$page)
{
  $om=$this->isNull($om);
  $type=$this->isNull($type);
  switch($type)
  {
   case "jpg":
    if($page)
    {
      $suc=imagejpeg($om);
      $this->inputError($suc);
    }else{
      $suc=imagejpeg($om,$this->dstFile);
      $this->inputError($suc);
    }
    break;
   case "gif":
    if($page)
    {
      $suc=imagegif($om);
      $this->inputError($suc);
    }else{
      $suc=imagegif($om,$this->dstFile);
      $this->inputError($suc);
    }
    break;
   case "png":
    if($page)
    {
      $suc=imagepng($om);
      $this->inputError($suc);
    }else{
      $suc=imagepng($om,$this->dstFile);
      $this->inputError($suc);
    }
    break;
   case "bmp":
    if($page)
    {
      $suc=imagewbmp($om);
      $this->inputError($suc);
    }else{
      $suc=imagewbmp($om,$this->dstFile);
      $this->inputError($suc);
    }
    break;
   default:
    echo "not you input file type!
";
    break;
  }
}
}
$file=new MakeMiniature();
$file->setParam("img/logo.jpg","img/logo1.jpg");//设置源文件,跟生成文件
$file->createImg($file->im,50,true);//按比例生成图象,比例为200%,在页面上显示
$file->createImg($file->im,50,false);//按比例生成图象,比例为200%,生成图片保存到上面设置的名字和路径
//$file->createNewImg($file->im,100,100,true);//按照自己设计的长宽生成图象,保存或者显示在页面上
?>

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13004/showart_68318.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP