图片下的水印(9gag.com风格)

时间:2012-03-18 12:53:45

标签: php gd watermark

我想在此网站上制作水印:http://9gag.com

主要的是在图像下放置条>而不是将其放在图片中。我想用PHP和GD库来实现它。任何帮助将是最好的一个将是一个示例代码或准备使用一个:)

问候!

2 个答案:

答案 0 :(得分:8)

创建x像素更高的图像,将原始图像复制到位置(0,0),然后将水印复制到位置(0,original_height)

$image = 'foo.jpg';
$watermark = 'watermark.png';
$imagesize = getimagesize($image);
$watermarksize = getimagesize($watermark);
$img = imagecreatetruecolor($imagesize[0], $imagesize[1] + $watermarksize[1]);
imagecopy($img, imagecreatefromjpeg($image), 0, 0, 0, 0, $imagesize[0], $imagesize[1]);
imagecopy($img, imagecreatefrompng($watermark), 0, $imagesize[1], 0, 0, $watermarksize[0], $watermarksize[1]);
imagejpeg($img);

未经测试,但它应该像那样工作。该代码假定水印不比原始图像宽。

答案 1 :(得分:1)

如果你希望它看起来不错,那就不那么容易了。

底部条纹需要3个块,即底部条纹的左侧,中间和右侧。建议所有3个块都具有相同的高度。

Here you go

使用

imagecreatetruecolor(imagesx($original_picture), imagesy($original_picture)+$stripe_height);

然后:

  • 左侧是imagecopymerge(...)
  • 右侧是imagecopymerge(...),但您需要通过从输入图像的宽度减去右侧块的宽度来计算x目标
  • 在左右之间(再次,做数学,很容易)使用imagecopyresize(...)添加中间块。使用该函数确保它在左右块之间线性缩放。