>백엔드 개발 >PHP 튜토리얼 >PHP는 썸네일을 생성합니다. PHP는 썸네일 클래스 코드를 생성합니다.

PHP는 썸네일을 생성합니다. PHP는 썸네일 클래스 코드를 생성합니다.

WBOY
WBOY원래의
2016-07-29 08:38:57807검색

/**
* 기능: 썸네일 생성
* 작성자: phpox
* 날짜: 2007년 5월 17일 목요일 09:57:05 CST
*/
class CreatMiniature
{
//공용 변수
var $srcFile="" //원본 이미지
var $ echoType; //출력 이미지 형식, 링크--파일로 저장되지 않음--파일로 저장됨
var $im=""; //임시 변수
var $srcW=""; 원본 이미지 너비
var $srcH=""; //원본 이미지 높이
//변수 설정 및 초기화
function SetVar($srcFile,$echoType)
{
if (!file_exists ($ srcFile)){
echo '소스 이미지 파일이 없습니다!'
exit()
}
$this->srcFile=$srcFile
$this; ->echoType =$echoType;
$info = "";
$data = GetImageSize($this->srcFile,$info)
스위치($data[2])
{
사례 1:
if(!function_exists("imagecreatefromgif")){
echo "GD 라이브러리는 GIF 형식 이미지를 사용할 수 없습니다. Jpeg 또는 PNG 형식을 사용하세요!반환exit();
}
$this->im = ImageCreateFromGIF($this->srcFile);
break;
사례 2:
if ( !function_exists("imagecreatefromjpeg")){
echo "GD 라이브러리는 jpeg 형식의 이미지를 사용할 수 없습니다. 다른 형식의 이미지를 사용하세요!
返回";
exit();
}
$this->im = ImageCreateFromJpeg($this->srcFile);
break;
사례 3:
$this->im = ImageCreateFromPNG($this->srcFile)
break
}
$this->srcW=ImageSX($this-> ;im);
$this->srcH=ImageSY($this->im)
}
//生成扭曲型缩图
function Distortion($toFile,$toW, $toH)
{
$cImg=$this->CreatImage($this->im,$toW,$toH,0,0,0,0,$this->srcW,$this ->srcH);
return $this->EchoImage($cImg,$toFile)
ImageDestroy($cImg)
//生成按比例缩放的缩图🎜>함수 비례 배분($toFile,$toW,$toH)
{
$toWH=$toW/$toH
$srcWH=$this->srcW/$this->srcH;
if($toWH<=$srcWH)
{
$ftoW=$toW;
$ftoH=$ftoW*($this->srcH/$this->srcW);
}
그 외
{
$ftoH=$toH
$ftoW=$ftoH*($this->srcW/$this->srcH);
if($this->srcW>$toW||$this->srcH>$toH)
{
$cImg=$this->CreatImage($this->im, $ftoW,$ftoH,0,0,0,0,$this->srcW,$this->srcH)
return $this->EchoImage($cImg,$toFile);
이미지파괴($cImg);
}
else
{
$cImg=$this->CreatImage($this->im,$this->srcW,$this->srcH,0,0, 0,0,$this->srcW,$this->srcH);
return $this->EchoImage($cImg,$toFile);
이미지파괴($cImg);
}
}
//生成最小裁剪后的缩图
function Cut($toFile,$toW,$toH)
{
$toWH=$toW/$toH ;
$srcWH=$this->srcW/$this->srcH;
if($toWH{
$ctoH=$toH;
$ctoW=$ctoH*($this->srcW/$this->srcH);
}
그밖에
{
$ctoW=$toW;
$ctoH=$ctoW*($this->srcH/$this->srcW);
}
$allImg=$this->CreatImage($this->im,$ctoW,$ctoH,0,0,0,0,$this->srcW,$this-> srcH);
$cImg=$this->이미지 생성($allImg,$toW,$toH,0,0,($ctoW-$toW)/2,($ctoH-$toH)/2,$toW,$ 에H);
return $this->EchoImage($cImg,$toFile);
이미지파괴($cImg);
ImageDestroy($allImg);
}
//生成背景填充的缩图
함수 BackFill($toFile,$toW,$toH,$bk1=255,$bk2=255,$bk3=255)
{
$toWH=$toW/$toH;
$srcWH=$this->srcW/$this->srcH;
if($toWH{
$ftoW=$toW;
$ftoH=$ftoW*($this->srcH/$this->srcW);
}
그밖에
{
$ftoH=$toH;
$ftoW=$ftoH*($this->srcW/$this->srcH);
}
if(function_exists("imagecreatetruecolor"))
{
@$cImg=ImageCreateTrueColor($toW,$toH);
if(!$cImg)
{
$cImg=ImageCreate($toW,$toH);
}
}
else
{
$cImg=ImageCreate($toW,$toH);
}
$backcolor = imagecolorallocate($cImg, $bk1, $bk2, $bk3); //좋은 색상
ImageFilledRectangle($cImg,0,0,$toW,$toH,$backcolor);
if($this->srcW>$toW||$this->srcH>$toH)
{
$proImg=$this->CreatImage($this->im, $ftoW,$ftoH,0,0,0,0,$this->srcW,$this->srcH);
if($ftoW<$toW)
{
ImageCopy($cImg,$proImg,($toW-$ftoW)/2,0,0,0,$ftoW,$ftoH);
}
else if($ftoH<$toH)
{
ImageCopy($cImg,$proImg,0,($toH-$ftoH)/2,0,0,$ftoW, $ftoH);
}
else
{
ImageCopy($cImg,$proImg,0,0,0,0,$ftoW,$ftoH);
}
}
else
{
ImageCopyMerge($cImg,$this->im,($toW-$ftoW)/2,($toH-$ftoH)/2 ,0,0,$ftoW,$ftoH,100);
}
return $this->EchoImage($cImg,$toFile);
이미지파괴($cImg);
}
function CreatImage($img,$creatW,$creatH,$dstX,$dstY,$srcX,$srcY,$srcImgW,$srcImgH)
{
if(function_exists("imagecreatetruecolor) "))
{
@$creatImg = ImageCreateTrueColor($creatW,$creatH);
if($creatImg)
ImageCopyResampled($creatImg,$img,$dstX,$dstY,$srcX,$srcY,$creatW,$creatH,$srcImgW,$srcImgH);
그 외
{
$creatImg=ImageCreate($creatW,$creatH);
ImageCopyReised($creatImg,$img,$dstX,$dstY,$srcX,$srcY,$creatW,$creatH,$srcImgW,$srcImgH);
}
}
else
{
$creatImg=ImageCreate($creatW,$creatH);
ImageCopyReised($creatImg,$img,$dstX,$dstY,$srcX,$srcY,$creatW,$creatH,$srcImgW,$srcImgH);
}
$creatImg를 반환합니다.
}
//输出图文,link---只输流,不保存文件。file--保存为文件
function EchoImage($img,$to_File)
{
switch( $this->echoType)
{
case "link":
if(function_exists('imagejpeg')) return ImageJpeg($img);
그렇지 않으면 ImagePNG($img)를 반환합니다.
휴식;
케이스 "파일":
if(function_exists('imagejpeg')) return ImageJpeg($img,$to_File);
그렇지 않으면 ImagePNG($img,$to_File)를 반환합니다.
휴식;
}
}
}
?>
以上就介绍了php生成略图 php生成略图的类代码, 包括了php生成缩略图사이드의 内容, 希望对PHP教程有兴趣的朋友帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.