站三界导航
首页 PHP代码用php实现生成缩略图的源代码

用php实现生成缩略图的源代码

  • PHP代码
  • 来源:站三界导航
  • 86阅读
  • 2022-06-08

<?php
/**

*功能:生成缩略图

*/

classCreatMiniature

{

//公共变量

var$srcFile="";//原图

var$echoType;//输出图片类型,link--不保存为文件;file--保存为文件

var$im="";//临时变量

var$srcW="";//原图宽

var$srcH="";//原图高

//设置变量及初始化

functionSetVar($srcFile,$echoType)

{

if(!file_exists($srcFile)){

echo'源图片文件不存在!';

exit();

}

$this->srcFile=$srcFile;

$this->echoType=$echoType;

$info="";

$data=GetImageSize($this->srcFile,$info);

switch($data[2])

{

case1:

if(!function_exists("imagecreatefromgif")){

echo"你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!<ahref='javascript:go(-1);'>返回</a>";

exit();

}

$this->im=ImageCreateFromGIF($this->srcFile);

break;

case2:

if(!function_exists("imagecreatefromjpeg")){

echo"你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!<ahref='javascript:go(-1);'>返回</a>";

exit();

}

$this->im=ImageCreateFromJpeg($this->srcFile);

break;

case3:

$this->im=ImageCreateFromPNG($this->srcFile);

break;

}

$this->srcW=ImageSX($this->im);

$this->srcH=ImageSY($this->im);

}

//生成扭曲型缩图

functionDistortion($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);

}

//生成按比例缩放的缩图

functionProrate($toFile,$toW,$toH)

{

$toWH=$toW/$toH;

$srcWH=$this->srcW/$this->srcH;

if($toWH<=$srcWH)

{

$ftoW=$toW;

$ftoH=$ftoW*($this->srcH/$this->srcW);

}

else

{

$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);

ImageDestroy($cImg);

}

else

{

$cImg=$this->CreatImage($this->im,$this->srcW,$this->srcH,0,0,0,0,$this->srcW,$this->srcH);

return$this->EchoImage($cImg,$toFile);

ImageDestroy($cImg);

}

}

//生成最小裁剪后的缩图

functionCut($toFile,$toW,$toH)

{

$toWH=$toW/$toH;

$srcWH=$this->srcW/$this->srcH;

if($toWH<=$srcWH)

{

$ctoH=$toH;

$ctoW=$ctoH*($this->srcW/$this->srcH);

}

else

{

$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->CreatImage($allImg,$toW,$toH,0,0,($ctoW-$toW)/2,($ctoH-$toH)/2,$toW,$toH);

return$this->EchoImage($cImg,$toFile);

ImageDestroy($cImg);

ImageDestroy($allImg);

}

//生成背景填充的缩图

functionBackFill($toFile,$toW,$toH,$bk1=255,$bk2=255,$bk3=255)

{

$toWH=$toW/$toH;

$srcWH=$this->srcW/$this->srcH;

if($toWH<=$srcWH)

{

$ftoW=$toW;

$ftoH=$ftoW*($this->srcH/$this->srcW);

}

本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/8621.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。