*作者:落梦天蝎(beluckly)

*完成时间:2006-12-18

*类名:CreatMiniature

*功能:生成多种类型的缩略图

*基本参数:$srcFile,$echoType

*方法用到的参数:

$toFile,生成的文件

$toW,生成的宽

$toH,生成的高

$bk1,背景颜色参数 以255为最高

$bk2,背景颜色参数

$bk3,背景颜色参数

[php]

/***************************************

*作者:落梦天蝎(beluckly)

*完成时间:2006-12-18

*类名:CreatMiniature

*功能:生成多种类型的缩略图

*基本参数:$srcFile,$echoType

*方法用到的参数:

$toFile,生成的文件

$toW,生成的宽

$toH,生成的高

$bk1,背景颜色参数 以255为最高

$bk2,背景颜色参数

$bk3,背景颜色参数

*例子:

include("thumb.php");

$cm=new CreatMiniature();

$cm->SetVar("1.jpg","file");

$cm->Distortion("dis_bei.jpg",150,200);

$cm->Prorate("pro_bei.jpg",150,200);

$cm->Cut("cut_bei.jpg",150,200);

$cm->BackFill("fill_bei.jpg",150,200);

***************************************/

class CreatMiniature

{

//公共变量

var $srcFile=""; //原图

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

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

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

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

//设置变量及初始化

function SetVar($srcFile,$echoType)

{

$this->srcFile=$srcFile;

$this->echoType=$echoType;

$info = "";

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

switch ($data[2])

{

case 1:

if(!function_exists("imagecreatefromgif")){

echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回";

exit();

}

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

break;

case 2:

if(!function_exists("imagecreatefromjpeg")){

echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回";

exit();

}

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

break;

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

}

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

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

}

}

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

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

}

//生成背景填充的缩图

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

}

else

{

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

{

ImageCopyMerge($cImg,$proImg,($toW-$ftoW)/2,0,0,0,$ftoW,$ftoH,100);

}

else if($ftoH

{

ImageCopyMerge($cImg,$proImg,0,($toH-$ftoH)/2,0,0,$ftoW,$ftoH,100);

}

*/

if($ftoW

{

ImageCopy($cImg,$proImg,($toW-$ftoW)/2,0,0,0,$ftoW,$ftoH);

}

else if($ftoH

{

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

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

else

{

$creatImg=ImageCreate($creatW,$creatH);

ImageCopyResized($creatImg,$img,$dstX,$dstY,$srcX,$srcY,$creatW,$creatH,$srcImgW,$srcImgH);

}

}

else

{

$creatImg=ImageCreate($creatW,$creatH);

ImageCopyResized($creatImg,$img,$dstX,$dstY,$srcX,$srcY,$creatW,$creatH,$srcImgW,$srcImgH);

}

return $creatImg;

}

//输出图片,link---只输出,不保存文件。file--保存为文件

function EchoImage($img,$to_File)

{

switch($this->echoType)

{

case "link":

if(function_exists('imagejpeg')) return ImageJpeg($img);

else return ImagePNG($img);

break;

case "file":

if(function_exists('imagejpeg')) return ImageJpeg($img,$to_File);

else return ImagePNG($img,$to_File);

break;

}

}

}

?>[/php]

php 图片后加参数缩图,智能的PHP缩图类相关推荐

  1. C# Winform添加背景图片后加载的时候控件卡

    添加下面3句 public Show(){InitializeComponent();SetStyle(ControlStyles.UserPaint, true);SetStyle(ControlS ...

  2. HTML图片后加分隔符怎么设置,在HTML/CSS中使用图像分隔符很困难

    我正在创建一个基本网站.我想在我的网页的两个部分之间使用水平分隔符图像.它现在没有显示出来.这是HTML,我已经使用:在HTML/CSS中使用图像分隔符很困难 这是我的CSS: hr.largesep ...

  3. jquery图片预加载+自动等比例缩放插件

    /* **************图片预加载插件****************** ///作者:没剑(2008-06-23) ///http://regedit.cnblogs.com ///说明: ...

  4. 在html中加入一个动态图,图片上加gif图片 图片某个角落贴个gif动态图,如何在静态图片上面加一张GIF动态图...

    喜欢上网的小伙伴就会知道网上流传灰常广泛一种搞笑gif动态图片,这类图片大部分是视频转gif的,就是截取视频经典搞笑画面制作而成,还加了些搞笑文字.使用网络聊天工具尤其是QQ就最常见了,那些搞笑的表情 ...

  5. java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题

    文章目录 先看成品 前言 一.项目目录结构 一.海报制作PosterUtil.java工具类 1. 描述 2. 代码 二.测试生成海报 1. 描述 2. 直接上代码 四.其他测试 1. Test1_C ...

  6. 怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个“续”字?如图:

    怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个"续"字?如图: 比如图片里的 八. 财务报表项目注释 - 续 租赁 - 续 这几个字 能让word分页 ...

  7. 如何在图片上加水印防止盗图?

    如何在图片上加水印防止盗图?大家都知道,互联网是一个开放的平台,在互联网上可以获取任何你想要的文件或者资料,不仅简单而且成本非常低,所以有很多人会在网上盗用别人的图片,然后为自己所用,这严重侵害了图片 ...

  8. vue点击图片后复制图片url_简单漂亮的(图床工具)开源图片上传工具——PicGo...

    介绍 PicGo: 一个用于快速上传图片并获取图片URL链接的工具,由vue-cli-electron-builder构建的简单漂亮的图片上传工具!基于electron-vue开发,支持macOS,W ...

  9. 页面加载成功后调用_在微信小程序里实现图片预加载组件

    网页中的图片预加载 我们知道在 Web 页面中实现图片的预加载其实很简单,通常的做法是在 JS 中使用 Image 对象即可,代码大致如下 var image = new Image() image. ...

  10. java读图片显示到前端_java从前端获取参数添加到图片后返回整张图片

    java从前端获取参数添加到图片后返回整张图片 以后为整个servlet代码,请自行加入到j2ee工程. import java.awt.Color; import java.awt.Font; im ...

最新文章

  1. memset用法详解
  2. 比较好用的python编译器_10个最好用的在线编译工具
  3. boost::mpl模块实现logical相关的测试程序
  4. 决策树 - 鸢尾花数据集
  5. 网游服务器端设计思考:心跳设计
  6. 消息中间件系列(三):主流的消息队列中间件有哪些?
  7. asp 更新 mysql数据库_ASP如何使用MYSQL数据库
  8. gephi生成网络关系图_用 NetworkX + Gephi + Nebula Graph 分析lt;权力的游戏gt;人物关系(上)
  9. tcpdump抓两个网卡的包_Linux下网络抓包命令tcpdump详解(在wireshark中看包)
  10. pandas小记:pandas高级功能
  11. Ionic系列——调用系统电话
  12. [转载]使用jquery实现用户名验证
  13. element ui table样式
  14. 微信mac电脑版客户端 v1.0.1.16 官方版
  15. win10 java8 环境变量_win10下安装JDK8和环境变量配置
  16. 史上最详细的 Win10系统重装教程(纯净版)
  17. python爬虫英文单词_利用PYTHON 爬虫爬出自己的英语单词库
  18. 城市轨道交通信号系统学习笔记(三)继电器
  19. 云摆摊 | 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!
  20. Tcp TimeWait处理流程

热门文章

  1. 爬虫——八爪鱼采集器
  2. php 上传图片 裁剪,thinkphp_图片上传裁剪功能
  3. vmware使用自带工具vmware-vdiskmanager精简占用磁盘空间
  4. python毕业论文开题报告范文_毕业论文的开题报告怎么写?
  5. 基于matlab的语音采集及处理
  6. 腾讯2019广告算法大赛总结
  7. SDUT-3337 计算长方体、四棱锥的表面积和体积
  8. 匹配非零开头的最多带两位小数的数字正则表达式
  9. 混淆电路的优化:PP、Free XOR、GRR
  10. 伍斯特理工学院计算机研究生,伍斯特理工学院计算机工程硕士排名第52(2020年TFE Times排名)...