PHP生成图片缩略图类示例

admin3年前软件教程47

篇文章介绍了PHP生成图片缩略图类示例,有兴趣的同学可以参考一下

本文实例讲述了PHP生成图片缩略图类。分享给大家供大家参考,具体如下:

classApp_image_helper {

protected$imgFileName;

protected$imgWidth;

protected$imgHeight;

protected$imgMime;

protected$imgResource;

static $imgMineList

=array(

'jpeg'=>'image/jpeg',

'gif'=>'image/gif',

'png'=>'image/png',

'wbmp'=>'image/wbmp',

);

/**

* 根据文件名,初始化图片,

* 计算出给定图片的宽、高、图片类型,并获取图片的资源保存到内存,便于下次使用

* App_image_helper constructor.

*

* @param $fileName

*/

publicfunction__construct($fileName) {

$this->imgFileName =$fileName;

list($this->imgWidth,$this->imgHeight,$this->imgMime) =$this->getImageInfo($this->imgFileName);

$this->imgResource =$this->getImageResource($this->imgFileName);

}

/**

* 根据图片路径获取相关宽、高、MIME类型信息

*

* @param $fileName

*

* @return array|null

*/

protectedfunctiongetImageInfo($fileName) {

$result= null;

if(is_file($fileName) ) {

$tmpImageInfo=getimagesize($fileName);

if($tmpImageInfo) {

$result=array($tmpImageInfo[0],$tmpImageInfo[1],$tmpImageInfo['mime']);

}

}

return$result;

}

/**

* 将图片文件转为资源类类型

*

* @param $fileName

*

* @return null|resource

*/

protectedfunctiongetImageResource($fileName) {

$image= null;

if(is_file($fileName) ) {

switch($this->imgMime) {

caseself::$imgMineList['jpeg']:

$image= imagecreatefromjpeg($fileName);

break;

caseself::$imgMineList['gif']:

$image= imagecreatefromgif($fileName);

break;

caseself::$imgMineList['png']:

$image= imagecreatefrompng($fileName);

break;

caseself::$imgMineList['wbmp']:

$image= imagecreatefromwbmp($fileName);

break;

default:

break;

}

}

return$image;

}

/**

* 可根据固定宽,等比缩放图片;或根据百分比,等比缩放图片

*

* @param int $width

* @param int $percent

*

* @return array|null

*/

protectedfunctiongetSizeByScale($width= 360,$percent= 1) {

$result= null;

if($this->imgWidth &&$this->imgHeight ) {

if($width) {

$result=array($width,intval($width*$this->imgHeight /$this->imgWidth));

}elseif($percent) {

$result=array(intval($this->imgWidth *$percent),intval($this->imgHeight *$percent));

}

}

return$result;

}

/**

* 外调

*

* @param int $percentOrWidth int整数表示图片缩放为固定宽度,0.0~0.99999表示缩放百分比

* @param null $fileName

* @param int $quality

* @param bool $reSample重新采样图片,默认是

*

* @return bool

*/

publicfunctioncreateImage($percentOrWidth= 1,$fileName= null,$quality= 75,$reSample= true) {

$result= false;

$fileName? header('Content-Type: '.$this->imgMime) : false;

$size=$this->getSizeByScale(($percentOrWidth<= 1) ? null :$percentOrWidth,$percentOrWidth);

if($size) {

$thumb= imagecreatetruecolor($size[0],$size[1]);

if($reSample) {

imagecopyresampled($thumb,$this->imgResource, 0, 0, 0, 0,$size[0],$size[1],$this->imgWidth,$this->imgHeight);

}else{

imagecopyresized($thumb,$this->imgResource, 0, 0, 0, 0,$size[0],$size[1],$this->imgWidth,$this->imgHeight);

}

$result= imagejpeg($thumb,$fileName,$quality);

}

return$result;

}

}

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

手机app怎么开发

很多app开发公司作为开发手机app软件的企业,在跟客户接触的过程中,有可能会遇到客户问手机app是怎么开发的,那作为app公司要如何像客户解释呢?如果不会的,也不用着急。跟着小编一起来了解一下怎么开...

腾讯视频怎么绑定大王卡免流量

腾讯视频绑定大王卡免流量的方法如下:1、打开腾讯视频,点击我的,然后点击腾讯王卡,选择看视频免流量。 2、最后打开腾讯视频,出现免流观看,就可以放心观看了。 腾讯视频上线于2011年4月,是在线视频平...

拼多多云朵宝宝有什么用

拼多多云朵宝宝每隔8小时可以下雨给果树浇水5次,用户通过使用星星来兑换云朵宝宝道具使用。拼多多是上海寻梦信息技术有限公司于2015年9月上线的一家专注于C2B拼团的第三方社交电商平台。用户通过发起和朋...

拼多多没有违规词为什么要考试

拼多多聊天词汇违规,会被判为诱导非官方交易,如果反复确认了自己确实在聊天中没有出现违规词,可能是系统bug造成的误判,及时联系客服申诉即可。拼多多是国内主流的手机购物APP,是一家专注于C2B拼团的第...

剪映能剪辑多长时间的视频

剪映1.7.1及以上的版本可以做15分钟的视频。它发布的系统平台包括ios版以及安卓版。剪映是抖音官方推出的一款手机视频剪辑应用,带有全面的剪辑功能,支持变速,有多样滤镜效果,丰富的曲库资源。抖音(T...

电脑腾讯课堂最小化会被发现吗

电脑腾讯课堂最小化不会被发现。要挂后台的时候没有离开会议就不会被发现。 会议主持人可以查看的记录是每个成员加入会议和离开会议的时间,无法显示是否挂后台。腾讯课堂是腾讯推出的专业在线教育平台,聚合大量优...