用户名为Watermark

时间:2010-11-14 02:01:04

标签: php image-processing gd imagick

好的,我搜索了互联网和stackoverflow,但我似乎无法找到问题的答案。

我需要动态地为用户上传的图像添加水印,但我不希望仅在图像上应用文本。我需要一个真正的水印这样: alt text

我能达到这种效果的唯一方法是使用Photoshop,添加阴影并将填充减少到0%。但如果我的网站被200个上传图片的用户访问过,我就无法为他们每个人提供一个带有用户名的新PNG文件。这就是我为这个问题寻找动态解决方案的原因。

我已经找到了如何将png文件添加为图像水印的课程,但就像我之前所说的那样,如果很多用户访问我的网站,这将无效。

我希望有人知道如何解决这个问题,并动态地对图像产生相同的效果。

非常感谢。

4 个答案:

答案 0 :(得分:11)

ImageMagick图像处理库includes such a transparent watermark example的文档。即使您想使用GD而不是ImageMagick,它也可能会让您知道如何操作。

答案 1 :(得分:2)

您可以使用imageMagick通过PHP执行此操作。做一些谷歌搜索PHP imagemagick水印,这个线程可能会帮助一些: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17067

你基本上想要制作水印的PNG文件。 PNG将允许alpha透明度,你可以获得投影效果等。

然后,这将应用于您的JPG图像,并在您的PNG上添加最终加水印的JPG图像。

应该工作。

答案 2 :(得分:0)

这里的其他答案都是很好的答案,但我想提出另一种选择。

您可以为scripts动态构建the GIMP来执行,这为您提供了很大的灵活性。这对于简单的水印来说是过度杀戮,但如果你需要做一些更复杂的图像处理,那绝对是一种选择。 CoolText.com是执行此操作的网站示例。

同样的方法也适用于Photoshop。实际上,您可以实例化Photoshop的COM interface with PHP

同样,我建议不要将它用于基本水印......只要你需要比ImageMagick / GD提供的功能更多的功能。

答案 3 :(得分:0)

对于其他答案,我将补充说,您不应该动态生成图像。如果水印是按用户名,则在用户注册您的站点(或更改其用户名)时生成一次水印文件,然后将该文件用作上传图像的叠加层。这将节省大量的CPU时间。