pokażę, jak dodać do zdjęć znak wodny, nie modyfikując i bez żadnych przeróbek wcześniejszego kodu.
Zakładamy, że zdjęcia znajdują się na serwerze w katalogu images.
Do tego katalogu wrzucamy obrazek ze znakiem wodnym najlepiej w formacie PNG, aby mieć wpływ na przeźroczystość. Niech się nazywa watermark.png.
Wrzucamy też plik watermark.php, który będzie nakładał znak wodny do zdjęć:
<?php // ścieżka zdjęcia na serwerze: $path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']; // tworzy zdjęcie z załadowanego pliku: $image = imagecreatefromstring(file_get_contents($path)); // pobiera wymiary zdjęcia: $w = imagesx($image); $h = imagesy($image); // ładuje znak wodny i pobiera jego wymiary: $watermark = imagecreatefrompng('watermark.png'); $ww = imagesx($watermark); $wh = imagesy($watermark); // nakłada znak wodny na obrazek w prawym dolnym rogu: imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh); // Wysyła obrazek do przeglądarki w formacie JPG i jakości 90%: header('Content-type: image/jpeg'); imagejpeg($image, null, 90); // dla pewności: exit(); |
Oczywiście należy uważać, aby białe znaki nie wkradły się do kodu. Najlepiej nie zamykać znacznika PHP.
Na koniec trzeba utworzyć plik .htaccess w katalogu images o zawartości:
# Włączamy mod_rewrite: RewriteEngine On # Jeśli przeglądarka wywołuje istniejący plik RewriteCond %{REQUEST_FILENAME} -f # i ma odpowiednie rozszerzenie, to przepuść ten plik przez skrypt: RewriteRule \.(gif|jpeg|jpg|png)$ watermark.php |
Łatwe?
Jak to wrzuciłem to nie działa mi obrazek tzn go nie wyświetla demo
OdpowiedzUsuńhttp://playmods.pl/test/
Wszystko pięknie działa, zięki
OdpowiedzUsuń