# EasyPhoto **Repository Path**: NBSCC/EasyPhoto ## Basic Information - **Project Name**: EasyPhoto - **Description**: 本项目是基于php gd库封装的简易的图片处理插件,可以对图片进行缩放、剪裁、以及使用多张图片合成一张图片的功能 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2016-12-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #EasyPhoto V1.0
项目简介
EasyPhoto是一款基于php gd库封装简易图片处理插件,提供了图片缩放、图片剪裁、多张图片合成一张图片(这个功能也可以视为给图片添加水印效果)等功能。本人专职前端开发,偶尔会写点php程序,水平有限。有问题可以咨询QQ 298031131

example:
//创建实例时也可以不传入图片
$layers=new EasyPhoto('layerl.png');
$layers->addLayer('layer2.png',array('pos'=>'LT'))
       ->addLayer('layer3.png',array('pos'=>'RT'))
       ->resize(300,300)
       ->save('results',true);

API:
addLayer($image,$options=array())
增加一个图像图层
@param string $image 加入图片的完整路径
@param array $options 可以选的配置参数默认array('x'=>0,'y'=>0,'pos'=>'LT')
@param int $options['x']图层的距离pos的x坐标
@param int $options['y']图层的距离pos的y坐标
@param string $options['pos'] 图层的相对位置,默认是LT
C for center L for left R for right B for bottom T for top
可选值:LT|LC|LB|CT|CC|CB|RT|RC|RB
@param int $options['opacity']图层的透明度,默认100

topLevel():设置当前活动图层
setLevel($level):设置当前活动图层的z-index,如果level大于图层长度则设置成图层len-1
@param int $level

getLayer($index):更改当前当活图层按照addLayer的顺序从0开始
@param int $index

setLayerProperty($property=array())
更改当前活动图层的属性:width,height,x,y,pos,opacity只覆盖传入的属性

mergeLayers():
合拼当前所有的图层,多图层的情况调用resize()/resizeByPresent()/crop()/save()会自动调用mergeLayers将多图层合并成单一的图层

resize($width,$height,$options=array())
调整图像大小,假如存在多个图层的话,会先合并成一个图层再调整大小
@param int $width 设置的宽度,当为auto时候,直接使用mode 5
@param int $height 设置的高度,当为auto时候,直接使用mode 5
@param array $options 可选参数
@param int $options['mode']调整图片大小的5种模式, default 2
1:直接根据给定的宽高来缩放图形,如果给定的比例不一致会导致图片变形
2:根据给定的宽高,按照原图片的比例全部显示,比例跟原来不一致会差生空白
3:按照图片比例,图像以最大的边显示,多余的部分会去掉,造成生成的缩略图尺寸,其中宽或高会小于指定的
4:图片截取模式,比例不一致时,原图会按原来比例截取,截取中心点可以设定,默认是图片中心点CC
5:给定宽或高按照图片原来比例来调整图片大小
@param string $options['pos'] 截图中心,只在mode 4生效

resizeByPresent($width,$height,$options=array()):按百分比来调整图像大小,具体调用参照resize()

crop($width,$height,$x,$y,$pos):图片剪裁
@param int $width剪裁后的宽度
@param int $height剪裁后的高度
@param array $options可选参数
@param int $options['x'] 相对于pos的x坐标
@param int $options['y'] 相对于pos的y坐标
@param string $options['pos'] 定位中心,以哪个点为参考中心


save($fileName,$remove=true,$quality=100)
保存图片
@param string $fileName指定图片保存的完整路径(含路径跟文件名) 如:Uploads/photo/123.png
@param boolean $remove 是否删除使用的图片,默认删除
@param int $quality 指定jpg图片保存的质量,默认100

use for Yii2 存放在适当的位置加上正确的namespace ,调用时候使用namespace即可。例如:放在common/lib中,namespace common/lib,调用时候使用 new \Yii\common\lib\EasyPhoto()
use for Yii1.1 存放在你引入的目录中,调用时候使用new EasyPhoto()即可。例如你在import中配置了'common.lib.*',只需放在common/lib中