构造SaeImage对象
SaeImage
__construct
([mixed $img_data = ""])
-
mixed
$img_data: img_data参数可以为二进制图片数据,也可以是用于composite图片合成的数组,数组格式:
array(array('blob1',x1,y1,opacity1,anchor1),
array('blob2',x2,y2,opacity2,anchor2),
array('blob3',x3,y3,opacity3,anchor3)
); 当合并(composite)图片时,$img_data必须设定
添加文字注解,可用于文字水印
bool
annotate
(string $txt, [float $opacity = 0.5], [constant $gravity = SAE_Static], [array $font = array("name"=>SAE_SimSun, "size"=>15, "weight"=>300, "color"=>"black")])
-
string
$txt: 必须为utf8编码
-
float
$opacity: 设置不透明度
-
constant
$gravity: 设置文字摆放位置, SAE_NorthWest,SAE_North,SAE_NorthEast,SAE_West, SAE_Center,SAE_East,SAE_SouthWest,SAE_South,SAE_SouthEast,SAE_Static
-
array
$font: 字体数组可以设置如下属性:
name,常量,字体名称,如果需要添加中文注解,请使用中文字体,否则中文会显示乱码。
支持的字体:SAE_SimSun(宋体,默认)、SAE_SimKai(楷体)、SAE_SinHei(正黑)、SAE_Arial
weight,字体宽度,int
size,字体大小,int
color,字体颜色,例如:"blue", "#0000ff", "rgb(0,0,255)"等,默认为"black";
将对象的数据重新初始化,用于多次重用一个SaeImgae对象
void
clean
()
图片合成,可以进行多张图片的合成,也可以做图片水印用
注意composite方法在和其它图片处理方法一起使用时,composite必须第一个被调用
在图片合成时,初始化对象传递imageData数据需要是一个二维数组。
数组中的每个成员也是数组,需要包含5个元素:
注意上面的x偏移和y偏移,和锚点位置有关,如果选择了锚点TOP_RIGHT,
则x和y的偏移是指该图片的TOP_RIGHT(右上角)相对于画布的右上角的偏移;
但如果选择BOTTOM_LEFT(左下角)为锚点,则x/y偏移就是指该图片的左下角
相对于画布的左下角的偏移量。
偏移的正负同数学中的象限规定。 图片的放置顺序同数组中出现的顺序
//从网络上抓取要合成的多张图片
$img1 =
file_get_contents('http://ss2.sinaimg.cn/bmiddle/53b05ae9t73817f6bf751&690');
$img2 =
file_get_contents('http://timg.sjs.sinajs.cn/miniblog2style/images/common/logo.png');
//实例化SaeImage并取得最大一张图片的大小,稍后用于设定合成后图片的画布大小
//清空$img数据
//设定要用于合成的三张图片(如果重叠,排在后面的图片会盖住排在前面的图片)
array( $img1, 0, 0, 1, SAE_TOP_LEFT ),
array( $img2, 0, 0, 0.5, SAE_BOTTOM_RIGHT ),
array( $img3, 0, 0, 1, SAE_BOTTOM_LEFT ),
) );
//执行合成
//输出图片
bool
composite
(int $width, int $height, [string $color = "black"])
-
int
$width: 设置画布宽度
-
int
$height: 设置画布高度
-
string
$color: 设置画布颜色
对图片进行裁剪
bool
crop
([float $lx = 0.25], [float $rx = 0.75], [float $by = 0.25], [float $ty = 0.75])
-
float
$lx: x起点(百分比模式,1为原图大小,如0.25)
-
float
$rx: x终点(百分比模式,1为原图大小,如0.75)
-
float
$by: y起点(百分比模式,1为原图大小,如0.25)
-
float
$ty: y终点(百分比模式,1为原图大小,如0.75)
进行图片处理操作
mixed
exec
([string $format = "jpg"], [bool $display = false])
-
string
$format: 图片格式,支持gif和jpg
-
bool
$display: 是否直接输出,false:不输出,true:输出,默认false
取得图像属性
array
getImageAttr
()
去噪点,改善图片质量,通常用于exec之前
bool
improve
()
缩放图片,只指定width或者height时,将进行等比缩放
bool
resize
([int $width = 0], [int $height = 0])
按比例缩放.1为原大小
bool
resizeRatio
([float $ratio = 0.5])
顺时针旋转图片
bool
rotate
([int $degree = 90])
-
int
$degree: 旋转度数(0 - 360)
设置key.
只有使用其他应用的key时才需要调用
bool
setAuth
(string $accesskey, string $secretkey)
-
string
$accesskey
-
string
$secretkey
设置要处理的图片二进制数据或数组,格式同构造函数的img_data参数
bool
setData
(string $img_data)