php的imagick扩展给gif添加文字水印
PHP Imagick    2019-07-17 11:52:30    28    0    0
admin   PHP Imagick

前言

给图片添加水印,是一个很常见的需求。但是该需求的实现却不简单。

问题

通常添加文字水印,是gd库的imagefttext方法。但是尝试之后,发现图片变成静态了。不符合需求。

利用搜索引擎,查询无数,发现gd扩展不合适解决这个问题。此时需要使用一个新的扩展
imagick

该扩展除了在gif图片过大的情况,存在速度问题,其他情况下表现良好。

解决

在尝试了很多教程,失败无数次。于是忍痛去阅读英文文档,写出正确的代码。

代码如下:

$im = new Imagick("2.gif");
$draw = new ImagickDraw();
$draw->setFont('LOKICOLA.TTF');
$draw->setFontSize( 50 );
$draw->setFillColor(new ImagickPixel("red"));
$text = "wuwenfu";

foreach ($im as $frame) {
    $frame->annotateImage($draw, 100, 120, 0, $text);
}

//写入到文件
//$im->writeImages("2_small.gif", true);
//输出到浏览器。
header( "Content-Type: image/gif" );
echo $im->getImagesBlob();

原图: 

 水印:

 

上一篇: Linux中top命令参数详解

下一篇: PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF

28
登录 后评论.
没有帐号? 现在注册.
0 评论
Table of content