一个图像源上的PHP多个图像脚本

一个图像源上的PHP多个图像脚本,php,jquery,image,Php,Jquery,Image,我有两种不同的处理图像的脚本: 第一个是用于动态为图像添加水印的水印脚本: $imgpath=$_REQUEST['filename']; header('content-type: image/jpeg'); $watermarkfile="assets/img/logo_variations/logo_watermark_75.png"; $watermark = imagecreatefrompng($watermarkfile); list($watermark_width,$wate

我有两种不同的处理图像的脚本:

第一个是用于动态为图像添加水印的水印脚本:

$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);
因此,带水印图像的图像URL为:
http://example.com/watermark.php?filename=assets/img/temp/temp_share.jpg
或者因为我正在使用mod_rewrite“美化”我的URL:
http://example.com/watermark/assets/img/temp/temp_share.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;
        }
    }
});
我之所以这样做,是因为这是在一个建模网站上,我想显示没有水印的图像,但我使用jquery脚本更改右键单击图像的图像源(假设用户试图保存图像)

该脚本仅更改具有
img protected
类的任何图像的源

我写它的目的是忽略URL中带有
水印的任何图像,这样它就不会试图更改已加水印的图像,从而导致类似于:
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;
        }
    }
});
在我添加另一个图像处理脚本之前,所有这些都非常有效:

我使用的是一个动态图像调整脚本,用于创建画廊图标,而不是上传图标和全尺寸图像(这也是我希望继续这样做的方式)

我面临的问题是:

如果在我的服务器上有一个正在使用
timtumb.php
将其重命名为
thumb.php
的图像转换为缩略图,则URL为
http://example.com/thumb.php?src=gallery/goth/industrial_brick/5361ae7de9404.jpg&w=350&h=500a=c&s=1&f=11
这给了我一个
5361ae7de9404.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;
        }
    }
});
我所有的图标都有一个类
img protected
,这意味着右键单击上面的URL将被更改为带水印的URL

这就是它失败的地方

右键单击时输出的URL为
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
这会导致图像损坏

我手动尝试将URL设置为
http://example.com/watermark/thumb.php?src=gallery/goth/industrial_brick/5361ae7de9404.jpg&w=350&h=500a=c&s=1&f=11
查看这是否会改变任何东西,但仍会导致图像损坏

我需要的是能够使用
watermark.php
thumb.php
中生成的图标添加水印

有没有一种方法可以将这两个脚本结合起来,或者有一种解决方法来实现这一点

我在这里完全不知所措


编辑:我完全知道高级用户仍然可以获取非水印图像,因为它已经下载到那里的设备上,但我不希望有大量用户访问此特定网站,因为这只是一个本地车型组合。

请通过请求(即。
http://example.com/watermark.php?filename=http%3A%2F%2Fexample.com%2Fthumb.php%3Fsrc%3Dgallery%2Fgoth%2Findustrial_brick%2F5361ae7de9404.jpg%26w%3D350%26h%3D500a%3Dc%26s%3D1%26f%3D11
,或调整“水印脚本”不仅需要参数
filename
,还需要另一个参数,然后相应地执行thumb.php。
http://example.com/watermark.php?filename=http%3A%2F%2Fexample.com%2Fthumb.php%3Fsrc%3Dgallery%2Fgoth%2Findustrial_brick%2F5361ae7de9404.jpg%26w%3D350%26h%3D500a%3Dc%26s%3D1%26f%3D11
,或调整“水印脚本”不仅需要参数
filename
,还需要另一个相应地执行thumb.php的参数。