php给图片处理添加水印(文本水印、图片水印)

首先现打开一张图片。



增加文字水印。



注意:
字体家族获取:
win10电脑--我的电脑--C盘--windows--Font--选择1种你喜欢的字体拷贝到项目中。

他是一种.ttf后缀的文件,你也可以到百度搜索一些你喜欢的字体下载解压即可使用。

如果你的水印是中文的话,那么你的字体家族也要找中文的字体,不能使用英文的字体家族,不然页面不会显示效果,但是英文文本可以使用中文的字体家族。


获取图片的宽高信息



我们看看图片是不是真的是1152X864


获取文本水印盒子的宽高
首先我们要知道文本水印的内容是实际上是有一个盒子包裹的,是有宽高的。


每个数组下标对应的x和y轴坐标(这个非常重要)。



控制文本水印盒子放置位置

如果我们想把文本水印放在图片的右下角,我们第一个想法就是去直接手动调参数。



我们已知图片宽为1152px,高为864px。那么我们可以大概判断,水印文本的放置位置在x轴上的800px左右,高也是800左右,忽略字体大小40px一个字符不计。刚好可以到右下角这个位置。




但这种是写死的固定定位,我们换一下水印文本内容就会看出问题所在。


水印文字没有完整输出到图片上?这时候我们还是手动去调?那换一张图片、换字体大小、更改水印内容文本、水印文本盒子的宽高等都会受到影响,导致水印文本输出不完整,这种调X和Y轴的参数,显然不太合适了。


正确做法是:先获取图片的高和宽,再获取水印文本盒子的宽高,再来做出水印盒子相对于图片X轴和Y轴的位移判断。

完整代码:


效果预览:



水印盒子的宽度是怎么求的?



图片水印处理

首先找一张带文字logo的图片,作为我们的图像水印拷贝。
比如我们用这张图片作为我们的图像水印拷贝。


实际效果预览:



代码:


imagecopy()方法:水印图片拷贝的参数说明:



你可能感兴趣的:(php给图片处理添加水印(文本水印、图片水印))