Skocz do zawartości


Zdjęcie

[PHP] Znak wodny


  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Ziele

Ziele

    Biblioteka Zielińskiego

  • 1812 postów

Napisano 10 03 2007 - 23:18

Wiele osób zastanawia się jak zrobić naprawdę prostą rzecz, a dokładniej znak wodny, który uchroni nas przed spamem :)

Tworzymy plik o nazwie znak.php i wklejamy do niego kod:

<?php

// znaku wodnego mozna uzywac tylko na obrazkach .jpg. gif .png
// jako znak wodny mozna uzyc tylko przezroczysty obrazek

	$imagesource =  $_GET['obraz'];
	$watermarkPath = $_GET['znak'];
	$filetype = substr($imagesource,strlen($imagesource)-4,4);
	$filetype = strtolower($filetype);
	$watermarkType = substr($watermarkPath,strlen($watermarkPath)-4,4);
	$watermarkType = strtolower($watermarkType);
	
	if($filetype == ".gif")  
		$image = @imagecreatefromgif($imagesource);
	else  
		if($filetype == ".jpg" || $filetype == "jpeg")  
			$image = @imagecreatefromjpeg($imagesource);
		else
			if($filetype == ".png")  
				$image = @imagecreatefrompng($imagesource);
			else
				die();  
	
	if(!$image)
		die();
	
	if($watermarkType == ".gif")
		$watermark = @imagecreatefromgif($watermarkPath);
	else
		if($watermarkType == ".png")
			$watermark = @imagecreatefrompng($watermarkPath);
		else
			die();
		
	if(!$watermark)
		die();
		
	$imagewidth = imagesx($image);
	$imageheight = imagesy($image);  
	$watermarkwidth =  imagesx($watermark);
	$watermarkheight =  imagesy($watermark);
	$startwidth = (($imagewidth - $watermarkwidth) );
	$startheight = (($imageheight - $watermarkheight) );
	imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);
	imagejpeg($image);
	imagedestroy($image);
	imagedestroy($watermark);
?>

Sposób użycia:

<img src="znak.php?obraz=obrazek.png&znak=znaczek.png" border="0">

Teraz wystarczy musimy zabezpieczyć nasze zdjęcia bez znaku wodnego. W .htaccess lub httpd.conf stosujemy kod:

<Directory>
Deny from all
<Files ~ "^\.(jpg|gif|png)">
Deny from all
</Files>
</Directory>

I to byłoby na tyle z bardzo trudnej roboty, która ma na nasze e-maile wielkie skutki :)

  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych