为图像添加水印

时间:2012-01-16 18:38:34

标签: php .htaccess cgi

我已经搜索了解决方案的年限,但我找不到适合我需求的解决方案。

所以这就是故事。我正在创建一个网站,我真的想为下载的图像添加水印。

昨天我在一个名为9gag的网站上浏览。如果你以前没有听过这个网站,它是一个基于漫画的网站,我发现当你下载图像,或者从除了他们的网站以外的任何地方访问图像时,底部有一个“水印/横幅”。图像。

例如拍下这张图片: link,请注意图片底部没有横幅。

如果右键单击“复制图像网址”,则会显示以下链接:image。现在看到横幅?

我对他们如何做到非常困惑,如果我们可以在我们的网站上使用它,那就太棒了。

任何有想法的人?它是否使用任何类型的CGI?

P.S:我不确定要添加什么标签,所以如果有人知道更好的标签组合,请进行编辑。

3 个答案:

答案 0 :(得分:4)

这个效果只是一个css技巧。图像本身实际上包含底部的水印,但图像标签被包裹在一个块中,当图像显示在页面中时,该块隐藏(溢出:隐藏)图像的底部42个像素。

您还可以做其他更复杂的事情(例如,通过php脚本提供图像并比较http referer

header("content-type: image/jpeg");
if (!isset($_SERVER['HTTP_REFERER'])){die("alert('Restricted Access!');");};
$_u=parse_url($_SERVER['HTTP_REFERER']);
$_u=preg_replace("/(www.)/i","",strtolower($_u['host']));
$_i=$_SERVER['HTTP_HOST'];
$_i=preg_replace("/(www.)/i","",strtolower($_i));
if ($_u != $_i){
   //handle this with gd or redirect
}

)但这只有在有人试图从不同的网站加载图片或者他们转到图片网址时才有效...通常保存 - 因为会从浏览器的缓存中保存图像,所以css技巧可能是您拥有的最佳选择(或这些选项的组合)。从根本上要记住,您可以捕获您在网络上显示的任何内容(上面的代码并非万无一失,您可以随时使用prtsc)。

答案 1 :(得分:1)

php的php库将帮助你做到这一点。

  1. 您需要使用imagecreate功能创建新图像,但要为原始尺寸添加更多“空格”。示例:如果我有200x200的图像(您也可以使用gd函数检索),则需要使用该函数创建200x220px图像

  2. 使用imagefilledrectangle函数

  3. 使用该灰色填充新图像
  4. 使用imagecopy

  5. 将原始图像复制到新图像中
  6. 将标题的内容类型设置为图像/ 类型 png gif等。

  7. 使用imagepng或任何其他具有所需格式的功能输出到图像。

答案 2 :(得分:0)

我在JQuery Watermark上取得了成功: Jquery Watermark

相关问题