【发布时间】:2011-09-07 11:27:29
【问题描述】:
我正在尝试为目录中的所有图像添加水印,比如说 www.example.com/private。其中一些图像具有很高的分辨率,而另一些则相对正常,因此目前我的水印对于较小的图像效果很好。即使将水印居中,我仍然会留下较大图像的理想部分容易被裁剪。
所以我的问题是我将如何编写一个 php 脚本来在整个图像中重复水印,无论是垂直还是水平?我对后端开发的了解还不够,只知道需要提供足够的水印保护,所以我在google上四处寻找,只能找到这个http://www.regardadesign.co.uk/blog/post/php-image-manipulation/15,它不起作用。
到目前为止,我已将以下 .htaccess 文件放入 /private 目录:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg|png)$ /admin/watermark.php [QSA,NC]
</ifModule>"
这是 watermark.php 文件中的脚本:
<?php
ini_set('memory_limit','200M');
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
$image = imagecreatefromstring(file_get_contents($path));
$w = imagesx($image);
$h = imagesy($image);
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
exit();
?>
【问题讨论】: