首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图片下载时自动添加水印

图片下载时自动添加水印
EN

Stack Overflow用户
提问于 2012-11-14 18:50:32
回答 4查看 4.8K关注 0票数 0

当有人从你的网站下载图片时,是否可以添加水印?如果是,最好的方法是什么?

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-14 18:53:10

如果你是指当Right Click -> Save它的时候,恐怕那是不可能的。

如果你通常的意思是你有一个专用的下载按钮或链接,你可以让它通过一个PHP文件重定向请求,该文件将添加所需的水印并生成一个新的图像文件用于下载。

票数 3
EN

Stack Overflow用户

发布于 2012-11-14 19:16:54

我有个更好的主意。

因为你说过当人们右击并选择 As时,你想要保护内容。因此,我们可以使用9gag的方式。

创建一个固定大小为footer的图像。使用下边距页脚大小的负边距父级。设置overflow: hidden;,这样用户就看不到隐藏在视图中的水印了。现在,当用户右键单击并另存为图像时,他们将具有水印。总而言之,图像中没有没有水印的地方。因此,在上传图像时,使用上述技术添加水印。

或者,如果您想制作单独的带水印的图像,则可以检查热链接文件,然后提供带水印的图像。

代码语言:javascript
复制
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
}

按照this tutorial中的说明在图片上添加水印。

票数 2
EN

Stack Overflow用户

发布于 2012-11-14 18:54:55

请检查下面的网址在这个网站相同,这将帮助你很多

http://www.phpjabbers.com/put-watermark-on-images-using-php-php20.html

以下内容来自上面的链接

代码语言:javascript
复制
 <?php
function watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile) { 
   list($width, $height) = getimagesize($SourceFile);
   $image_p = imagecreatetruecolor($width, $height);
   $image = imagecreatefromjpeg($SourceFile);
   imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height); 
   $black = imagecolorallocate($image_p, 0, 0, 0);
   $font = 'arial.ttf';
   $font_size = 10; 
   imagettftext($image_p, $font_size, 0, 10, 20, $black, $font, $WaterMarkText);
   if ($DestinationFile<>'') {
      imagejpeg ($image_p, $DestinationFile, 100); 
   } else {
      header('Content-Type: image/jpeg');
      imagejpeg($image_p, null, 100);
   };
   imagedestroy($image); 
   imagedestroy($image_p); 
};
?>
<?php
$SourceFile = 'image1.jpg';//image path
$DestinationFile = 'images/image1-watermark.jpg'; //Out put path
$WaterMarkText = 'Copyright Watermark text';
watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile);
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13377389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档