【问题标题】:User name as Watermark用户名作为水印
【发布时间】:2010-11-14 02:01:04
【问题描述】:

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

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

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

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

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

非常感谢。

【问题讨论】:

    标签: php image-processing gd imagick


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。正如我之前提到的,我已经知道如何为图像动态添加水印。我想更进一步,为每个注册用户动态地创建一个带有透明度和阴影效果的 PNG。
    • 抱歉,第一次没明白你的意思。非常感谢,我会试一试!
    【解决方案2】:

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

    您实际上是想制作一个水印的 PNG 文件。 PNG 将允许 alpha 透明度,您可以获得投影效果等。

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

    应该可以。

    【讨论】:

    • 感谢您的回复。正如我之前提到的,我已经知道如何做到这一点。我现在需要使用 PHP 为每个用户动态创建“水印”PNG 文件。 :)
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 感谢您的替代方案。我会看看他们。
    【解决方案4】:

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

    【讨论】:

    • 这就是整个想法。我不知道如何生成具有透明度和阴影效果的 PNG 文件。图像在用户注册时创建一次(他们不能更改他们的用户名)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多