Вы сказали, что: /hotlinking/watermark.php
- это ваш путь к файлу, поэтому я думаю, что ваш rewriterule должен быть
RewriteRule (.*) /hotlinking/watermark.php?pic=$1
И я думаю, что у вас возникла ошибка при прямом доступе
http://192.168.1.190/hotlinking/watermark.php
потому что вы, кажется, не передаете параметр pic.
Кстати:
a) Я почти уверен, что вам придется изменить $ _GET ['pic']path или функция imagecreatefromjpeg
не сможет открыть ваше изображение.
b) если это не jpeg, вам придется изменить его с помощью другой функции.Вам придется проверить тип изображения перед его открытием.
--- ОБНОВЛЕНИЕ ---
Хорошее значение RewriteRule RewriteRule (.*) watermark.php?pic=$1
Теперь у вас есть водяной знакФайл .php запрошен.Вы должны изменить свой код.$ _GET ['pic'] скажет вам, какой путь к изображению был запрошен.Вам придется изменить этот путь, чтобы открыть изображение.
Watermark.php находится в корневом каталоге, поэтому, возможно, подойдет dirname(__FILE__) . $_GET['pic']
.
<?php
// Load the stamp and the photo to apply the watermark to
$filepath = dirname(__FILE__) . $_GET['pic'];
if ( file_exists($filepath) )
{
$infos = pathinfo($filepath);
$im = null;
switch($infos['extension'])
{
case 'jpg' :
case 'jpeg' :
$im = imagecreatefromjpeg($filepath);
break,
case 'png' :
$im = imagecreatefrompng($filepath);
// ....
}
if ( $im !== null )
{
$stamp = imagecreatefrompng('tbwm.png');
// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Copy the stamp image onto our photo using the margin offsets and the photo
// width to calculate positioning of the stamp.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
// Output and free memory
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
}
}
Это не такполный сценарий, просто как начать.Остальное вам придется выяснить самостоятельно.