中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
php gd 缩略图(自家用)
作者:未知 时间:2005-07-27 23:29 出处:CSDN 责编:chinaitpower
              摘要:php gd 缩略图(自家用)
/** *说明: 这个类完成缩略图的生成,支持页面显示和生成文件
*version 1.0
*@author sanshi(叁石)
*QQ: 35047205
*MSN: sanshi0815@tom.com
*Create 2005/6/18
*******************************************************
*@param string $srcFile 源文件
*@param string $dstFile 目标文件
*@param string $fileType 当前文件类型
*@param string $im 图片打开资源句柄
*@param array $imgType 文件类型定义
*/
class MakeMiniature
{
var $srcFile; //源文件
var $dstFile; //目标文件
var $fileType; //文件类型
var $im; //图片打开资源句柄
var $imgType=array("jpg", //文件类型定义
"gif",
"png",
"bmp");
/**
*说明: 取得文件类型
*@param string $fileName 文件名
*@return boolean 符合return true
*/
function findType($fileName)
{
if($type=strstr($fileName,"."))
{
$type=substr($type,1);
if(!strstr($type,"."))
{
$var=$type;
}else{
echo "file type error!
";
}
}else{
echo "file type error!
";
}
for($i=0;$i<=count($this->imgType);$i++)
{
if(Strcmp($this->imgType[$i],$var)==0)
{
$this->fileType=$var;
return true;
}else{
return false;
}
}
}
/**
*@param $fileType 文件类型
*@return 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;
} /**
*说明: 设置源文件名和生成文件名,同时完成了文件类型的确定
* 还有对文件的打开
*@param string srcFile 目标文件
*@param 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!
";
}
}
/**
*说明 取得图象的宽度
*@param resource im 打开图象成功的资源
*@return int width 图象的宽度
*/
function getImgWidth($im)
{
$im=$this->isNull($im);
$width=imagesx($im);
return $width;
}
/**
*说明 取得图象的高度
*@param resource im 打开图象成功的资源
*@return int height 图象的高度
*/
function getImgHeight($im)
{
$im=$this->isNull($im);
$height=imagesy($im);
return $height;
}
/**
*说明 建立图象
*@param resource im 打开图象成功的资源
*@param int scale 生成图象是与原图象的比例为百分比
*@param 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);
}
/**
*说明 建立图象
*@param resource im 打开图象成功的资源
*@param int scale 生成图象是与原图象的比例为百分比
*@param 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);
}
/**
*说明 输出图象建立失败的提示
*@param boolean boolean 判断是否输出
*/
function inputError($boolean)
{
if(!$boolean)
{
echo "img input error!
";
}
}
/**
*说明 根据条件显示图片输出位置和类型
*@param resource $om 图象输出的资源
*@param String $type 输出图象的类型,现在使用源图象的类型
*@param 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,200,true);//按比例生成图象,比例为200%,在页面上显示
$file->createImg($file->im,200,false);//按比例生成图象,比例为200%,生成图片保存到上面设置的名字和路径
$file->createNewImg($file->im,100,100,true);//按照自己设计的长宽生成图象,保存或者显示在页面上

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有