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

时间:2016-10-09 17:33:28

标签: php jquery image

我有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=11thumb.php生成的图标添加水印。

有没有办法将这两个脚本或解决方法结合起来使其工作?

我在这里完全失去了。

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

0 个答案:

没有答案