PHP生成图片缩略图类示例

admin3年前软件教程67

篇文章介绍了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;

}

}

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

相关文章

如何将哔哩哔哩视频下载到本地

以小米CC9 手机MIUI12.0.2系统版本,哔哩哔哩6.8.1版本为例,下载视频保存到本地的操作方法如下:1、打开b站,点击右上角离线缓存图标;  2、点击齿轮图标,自定义目录,新建目录;3、输入...

腾讯会议设置视频时别人能看到吗

腾讯会议设置视频时别人不能看。在腾讯会议进行时,别人是不能看到的,因为对方只能看到自己手机或者是电脑上的内容,没有权限看别人的。腾讯会议是腾讯云旗下一款云会议产品,于2019年12月25日发布,具有灵...

APP开发有哪些核心原则

随着现在移动互联网的高速发展,以及移动设备的普及,App开发的前景也十分明朗,在未来的几年里,这发展趋势将会越来越明显。因此,很多企业也开始重视,并着手对移动APP手机软件的开发设计,希望设计出好看实...

携程怎么开通免密支付

以安卓的携程8.28.0版本为例,携程携程开通免密支付的步骤是:1、在手机桌面点击携程旅行图标,打开携程旅行软件。 2、在“我的”选项卡点击“我的钱包”选项。 3、接下来,点击“支付设置”。 4、在打...

拼多多想买是什么意思

拼多多想买的意思是收藏了,用户有意向购买该商品进行了收藏但没有付款。该标签是针对0销量的商品,在7天内有用户浏览了商品但未发起拼单则计为想买人数展示在商品详情页当中。拼多多是上海寻梦信息技术有限公司于...

b站音频如何下载到手机

b站APP版本为6.3.0(10070),b站音频下载到手机的方法如下:1、首先打开手机桌面上的【哔哩哔哩】APP图标;2、接着点击主页【频道】;3、随后点击【分区】;4、接着点击【音频】;5、然后随...