教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 网站编程 > PHP教程 >

php利用imagick扩展给gif静/动态图片加水印

时间:2012-09-21 10:15来源:未知 作者:ken 点击:

首先就得要打开imagick扩展,网上上有教程,windows下记得imagick版本要对应,虽然imagick在帧数多的情况下比较慢,但是效果不错。

记得不是当前目录 要写路径,包括字体也是一样的,代码如下:

$image_name = 'img.gif'; //名字随便写
function createTextImagickDraw($fontSize = 12, $fillColor = '', $underColor = '', $font = 'simsun.ttc') {
    $draw = new ImagickDraw();
    $draw - >setFont($font);
    $draw - >setFontSize($fontSize);
    //$draw->setGravity(Imagick::GRAVITY_SOUTHEAST);//设置水印位置
    if (!empty($underColor)) $draw - >setTextUnderColor(new ImagickPixel($underColor));
    if (!empty($fillColor)) $draw - >setFillColor(new ImagickPixel($fillColor));
    return $draw;
}

function createWaterImagickDraw($waterImg = 'water.png', $x = 10, $y = 85, $width = 16, $height = 16) {//这里根据水印大小设置 最好x y能自己先检测判断位置
    $water = new Imagick($waterImg);
    //$second->setImageOpacity (0.4);//设置透明度
    $draw = new ImagickDraw();
    //$draw->setGravity(Imagick::GRAVITY_CENTER);//设置位置
    $draw - >composite($water - >getImageCompose(), $x, $y, $width, $height, $water);

    return $draw;

}
$image = new Imagick($image_name);
$animation = new Imagick();
$animation - >setFormat("gif");
$image = $image - >coalesceImages();
$unitl = $image - >getNumberImages();
$drawImg=createWaterImagickDraw('warter.png');

for ($i = 0; $i < $unitl; $i++) {
    $image - >setImageIndex($i);
    $thisimage = new Imagick();
    $thisimage - >readImageBlob($image);
    $delay = $thisimage - >getImageDelay();
    $thisimage - >annotateImage(createTextImagickDraw(12, 'red'), 30, 100, 0, '阿维卡');//文字水印
    $thisimage - >annotateImage(createTextImagickDraw(12, 'green'), 10, 120, 0, 'http://xyxgo.com');
    $thisimage - >annotateImage(createTextImagickDraw(12, 'blue'), 10, 140, 0, 'http://www.eduyo.com');
    $thisimage - >drawImage($drawImg);//图片水印
    $animation - >addImage($thisimage);
    $animation - >setImageDelay($delay);
}
$animation - >writeImages('new/'.$image_name, true);
header("Content-Type: image/gif");
echo $animation - >getImagesBlob();

(责任编辑:ken)
TAG标签: php 图片 水印 imagick gif
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容