【问题标题】:dynamically creating image watermark动态创建图像水印
【发布时间】:2014-01-17 09:22:50
【问题描述】:

我想使用 php 和 .htaccess 为目录中的所有图像动态添加水印。以下 php 代码在第 6 行给我一个错误,说“未定义索引:i。”我所有的图像都是 .gif 以及 .png 和 .jpeg。

<?php 

    $basedir="C:/vhosts/phpcs5/images/product_images"; 
    $watermarkimage="PreviewWatermark.png"; 

    $file=basename($_GET['i']); 

    $image = $basedir."/".$file; 
    $watermark = $basedir."/".$watermarkimage; 

    $im = imagecreatefrompng($watermark); 

    $ext = substr($image, -3); 

    if (strtolower($ext) == "gif") { 
    if (!$im2 = imagecreatefromgif($image)) { 
    echo "Error opening $image!"; exit; 
    } 
    } else if(strtolower($ext) == "jpg") { 
    if (!$im2 = imagecreatefromjpeg($image)) { 
    echo "Error opening $image!"; exit; 
    } 
    } else if(strtolower($ext) == "png") { 
    if (!$im2 = imagecreatefrompng($image)) { 
    echo "Error opening $image!"; exit; 
    } 
    } else {
     die; 
     } 
     imagefilledrectangle($im2, 0  , (imagesy($im2))-(imagesy($im)) , imagesx($im2)  , imagesy($im2) ,  imagecolorallocatealpha($im2, 0, 0, 0, 100) ); imagecopy($im2, $im, (imagesx($im2)-(imagesx($im))), (imagesy($im2))-(imagesy($im)), 0, 0, imagesx($im), imagesy($im)); 

     $last_modified = gmdate('D, d M Y H:i:s T', filemtime ($image)); 

     header("Last-Modified: $last_modified"); 
     header("Content-Type: image/jpeg"); 
     imagejpeg($im2,NULL,95); 
     imagedestroy($im); 
     imagedestroy($im2); 


?> 

这是我的 .htaccess 文件

RewriteRule ^([^thumb].*\.[jJ].*)$ phpcs5/images/product_images/w.php?i=$1 [L]

【问题讨论】:

  • 如何调用脚本?在第一行添加print_r($_GET)。你得到了什么?

标签: php watermark


【解决方案1】:

我认为问题在于您的重写规则。您将匹配不以 t、h、u、m 或 b 开头的任何内容。如果没有更好地了解您希望重写规则做什么,我真的无法提供任何额外的帮助。

但是,我猜你想重写任何不以thumb 开头的东西,扩展名以j 开头。 (例如 thumbfoo.jpg 不会重写,但 myimage.jpg 会)

RewriteCond %{REQUEST_URI} !^thumb.*\.[jJ].*$
RewriteRule !(.*) /phpcs5/images/product_images/w.php?i=$1 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 2011-07-24
    • 2011-02-16
    • 2022-01-06
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多