好的,我搜索了互联网和stackoverflow,但我似乎无法找到问题的答案。
我需要动态地为用户上传的图像添加水印,但我不希望仅在图像上应用文本。我需要一个真正的水印这样:
我能达到这种效果的唯一方法是使用Photoshop,添加阴影并将填充减少到0%。但如果我的网站被200个上传图片的用户访问过,我就无法为他们每个人提供一个带有用户名的新PNG文件。这就是我为这个问题寻找动态解决方案的原因。
我已经找到了如何将png文件添加为图像水印的课程,但就像我之前所说的那样,如果很多用户访问我的网站,这将无效。
我希望有人知道如何解决这个问题,并动态地对图像产生相同的效果。
非常感谢。
答案 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时间。