我有2个不同的脚本来处理图像:
第一个是用于动态水印图像的水印脚本:
$imgpath=$_REQUEST['filename'];
header('content-type: image/jpeg');
$watermarkfile="assets/img/logo_variations/logo_watermark_75.png";
$watermark = imagecreatefrompng($watermarkfile);
list($watermark_width,$watermark_height) = getimagesize($watermarkfile);
$image = imagecreatefromjpeg($imgpath);
$size = getimagesize($imgpath);
$dest_x = ($size[0] - $watermark_width)/2;
$dest_y = ($size[1] - $watermark_height)/2;
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
因此,水印图片的图片网址为:http://example.com/watermark.php?filename=assets/img/temp/temp_share.jpg
或者因为我使用mod_rewrite来“漂亮”我的网址:http://example.com/watermark/assets/img/temp/temp_share.jpg
。
像魅力一样工作,我这样做的原因是因为这是在建模网站上,我想要显示没有水印的图像,但我使用jquery脚本来更改图像的图像源被右键单击(假设用户试图保存图像。)
该脚本仅更改img-protected
类的任何图像的来源。
我写过它是为了忽略网址中watermark
的任何图片,这样它就不会尝试更改已经加水印的图像,这会导致像http://example.com/watermark/watermark/img.jpg
这样的网址:在破碎的图像中。编写另一部分是为了从原始来源中删除http://example.com
,因此我最终不会使用http://example.com/watermark/http://example.com/img.jpg
。
$('.img-protected').on('mousedown', function (event) {
if (event.which == 3) {
if(this.src.indexOf("watermark") > -1) {
return false;
}
else {
src = this.src.replace('http://example.com/','');
this.src = 'http://example.com/watermark/' + src;
}
}
});
在我添加另一个图像处理脚本之前,所有这些都非常有效:
我正在使用TimThumb.php这是一个动态图像调整大小脚本,我用它来创建图库图标而不是上传图标和全尺寸图像(这也是我希望继续这样做的方式)
我面临的问题是:
如果我使用TimThumb.php
将图片转换为缩略图,我在服务器上将其重命名为thumb.php
,则网址为http://example.com/thumb.php?src=gallery/goth/industrial_brick/5361ae7de9404.jpg&w=350&h=500a=c&s=1&f=11
,这会为{{1}提供一个图标}}
我的所有图标都有一个5361ae7de9404.jpg
类,这意味着在点击右键时,上面的网址将更改为带水印的网址。
这是它失败的地方。
右键点击后输出的网址为img-protected
,导致图片损坏。
我手动尝试将网址设为http://example.com/watermark/http://www.example.com/thumb.php?src=gallery/goth/industrial_brick/5361ae7de9404.jpg&w=350&h=500a=c&s=1&f=11
以查看是否会改变任何内容,但仍会导致图像损坏。
我需要的是能够使用http://example.com/watermark/thumb.php?src=gallery/goth/industrial_brick/5361ae7de9404.jpg&w=350&h=500a=c&s=1&f=11
为thumb.php
生成的图标添加水印。
有没有办法将这两个脚本或解决方法结合起来使其工作?
我在这里完全失去了。
编辑:我完全清楚高级用户仍然可以获取非水印图像,因为它已经被下载到那里的设备,但我不希望大量用户访问这个特定的网站,因为这只是一个本地模型组合。