可以给图片添加图片水印,也可以给图片添加字体水印,下面是给图片添加字体水印的笔记:
一、准备好素材;(下载好字体类型和要添加字体水印的图片);
二、加载要添加水印的图片;
三、设置字体颜色,也可以同时设置透明度;
四、将要添加的内容写入图片;
五、输出图像并释放内存。
举个简单例子:
//1.字体路径
$font = 'font.ttf';
//2.加载要加水印的图像
$stamp = imagecreatefromjpeg ( 'photo.jpg' );
//3.设置字体颜色和透明度
$color = imagecolorallocatealpha($stamp, 100, 50, 50, 50);
$x = imagesx ( $stamp )/2 - 150;
$y = imagesy ( $stamp )/2+150;
//4.写入文字
imagettftext($stamp, 100, 45, $x, $y, $color, $font, '练练');
//5.输出图像并释放内存
header ( 'Content-type: image/jpeg' );
imagejpeg ( $stamp );
imagedestroy ( $stamp );
字体类型可以百度,一大把,看自己需要下载对应的字体就可以了。
图片的话,不限制图片类型(拓展名)。只是在加载图像的时候建议使用对应类型的创建新图像函数(在给图片添加图片水印里有列明);或者使用函数file_get_contents()将图片读为一个字符串,然后从字符串中的图像流新建一图像imagecreatefromstring()。
设置字体颜色可以使用以下函数:
为一幅图像分配颜色和透明度:imagecolorallocatealpha(
image,
i
m
a
g
e
,
red,
green,
g
r
e
e
n
,
blue,
alpha)为一幅图像分配颜色:imagecolorallocate(
a
l
p
h
a
)
为
一
幅
图
像
分
配
颜
色
:
i
m
a
g
e
c
o
l
o
r
a
l
l
o
c
a
t
e
(
image,
red,
r
e
d
,
green,
blue)参数说明:
b
l
u
e
)
参
数
说
明
:
image 加载新建的图像;
red,
r
e
d
,
green,
blue分别是所需要的颜色的红、绿、蓝成分,这些参数是0到255的整数或者十六进制的0x00到0xFF;
b
l
u
e
分
别
是
所
需
要
的
颜
色
的
红
、
绿
、
蓝
成
分
,
这
些
参
数
是
0
到
255
的
整
数
或
者
十
六
进
制
的
0
x
00
到
0
x
F
F
;
alpha 是透明度参数,其值从 0 到 127。0 表示完全不透明,127 表示完全透明
给图片加入字水印,使用函数 imagettftext (
image,
i
m
a
g
e
,
size,
angle,
a
n
g
l
e
,
x,
y,
y
,
color,
fontfile,
f
o
n
t
f
i
l
e
,
text )
参数说明:
image加载新建的图像;
i
m
a
g
e
加
载
新
建
的
图
像
;
size 字体的尺寸;
angle角度制表示的角度,0度为从左向右读的文本,更高数值表示逆时针旋转,例如90度表示从下向上读的文本;
a
n
g
l
e
角
度
制
表
示
的
角
度
,
0
度
为
从
左
向
右
读
的
文
本
,
更
高
数
值
表
示
逆
时
针
旋
转
,
例
如
90
度
表
示
从
下
向
上
读
的
文
本
;
x ,
y第一个字符的基本点(位置坐标);
y
第
一
个
字
符
的
基
本
点
(
位
置
坐
标
)
;
color 字体颜色(上一步设置的字体颜色、透明度);
fontfile字体类型文件路径;
f
o
n
t
f
i
l
e
字
体
类
型
文
件
路
径
;
text 字体水印内容;
输出图像跟给图片添加图片水印输出一样,这里不赘述了