Самое элегантное решение, приведенное выше, состояло в том, чтобы создать прямоугольник над изображением, который меньше (и будет скрывать водяной знак), который был сгенерирован ранее (скажем, при загрузке изображения).
Таким образом,CSS скрывает белое поле под картинкой, и когда кто-то использует «Сохранить как», поле появляется.Ресурс на сервере не используется.
Вот решение, основанное на разработанном мной заголовке браузера.Не работайте с "Сохранить как", но работайте для изображения с прямым доступом и src = ""
<?php
#...
# Require PHP to work as a module in apache
$SentHeaders = apache_request_headers();
#$Watermark = strpos($SentHeaders['Accept'], 'text');
$Watermark = preg_match_all('/text/', $SentHeaders['Accept'], $matches);
# Set the header
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
# HHeader required
($Image->ContentType) ? header('Content-Type: '.$Image->ContentType) : header('Location: /404');
# Accès direct / save as
if($Watermark){
# Direct Image Access
#...
} else {
# Image included in src=""
#...
}
#...
?>