6

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

我需要动态地为用户上传的图像添加水印,但我不想只在图像上应用文本。我需要一个像这样的真实水印: 替代文字

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

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

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

非常感谢。

4

4 回答 4

11

ImageMagick 图像处理库的文档包括这样一个透明水印示例。即使您想使用 GD 而不是 ImageMagick,它也可能让您知道如何做。

于 2010-11-14T02:10:59.457 回答
2

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

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

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

应该管用。

于 2010-11-14T02:12:29.570 回答
0

这里的其他答案是很好的答案,但我想提出一个替代方案。

您可以动态构建脚本以供GIMP执行,这为您提供了极大的灵活性。这对于一个简单的水印来说太过分了,但如果你需要做一些更复杂的图像处理,它绝对是一个选择。 CoolText.com就是一个这样做的网站示例。

同样的方法也适用于 Photoshop。事实上,您可以用 PHP 实例化 Photoshop 的 COM 接口

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

于 2010-11-14T03:02:08.940 回答
0

对于其他答案,我将补充一点,您不应该即时生成图像。如果水印是用户名,当用户注册您的网站(或更改他们的用户名)时生成一次水印文件,然后使用该文件作为上传图像的覆盖。这将节省大量的 CPU 时间。

于 2010-11-14T04:54:07.757 回答