|
|
Witaj na szabloniki.com!
Na naszej stronie znajdziesz: dodatki na bloga, darmowe szablony stron, szablony na bloga, PHP-Fusion Themes (szablony do PHP-Fusion), generator bannerów, wskaznik PageRank strony, skrypty, avatary, tutoriale do Photoshopa, tla pod bannery, tanie szablony za SMS. |
|
dodatki, skrypty, generatory
|
|
|
|
Znak wodny
|
Tym razem coś prostego ;) Często zdarza się że potrzebujemy opatrzeć jakąś grafikę naszym logiem, np. wystawiając coś na Allegro zależy nam na tym aby fotki naszego super czegoś nie były rozpowszechniane wszędzie i wykorzystywane do niecnych celów. Podobnie z grafikami naszego autorstwa lub wszystkim innym do czego prawo przypisujemy własnej osobie. Możemy dodać jakiś znaczek swiadczący o przynależności do autora korzystając z programów graficznych lecz istnieje szybsze i prostsze rozwiązanie... PHP4.04 :P Pokażę jak zmajstrować prosty i wygodny skrypt który zajmie się doklejaniem naszego loga do zadanego obrazka a jego obsługa sprowadzi się do wpisania adresu w przegladarce:
http://serwer.pl/chron.php?zdjecie=fotka.jpg&logo;=logo.jpg
Chyba wszystko jasne :P Skrypt zwał się będzie chron.php.
fotka.jpg to adres pliku z główną grafiką, przy czym należy zaznaczyć ze można tu podać zarówno scieżkę dostępu do lokalnego pliku na dysku serwera (np. ./fotka.jpg) jak rownież dowolną zdalną lokalizację (np. http://innyserwer.pl/fotka.jpg) To samo tyczy się pliku logo.jpg który wskazuje na nasz znaczek. Ważne aby zachować podaną kolejność gdyż na nasze edykacyjne potrzeby przyjmujemy że skrypt będzie wykorzystywany zgodnie z przeznaczeniem, dlatego też pomijamy wszelką kontrolę rozmiarów, treści samych grafik jak rownież ich typów. Jeśli sami nie zadbamy o poprawność danych skrypt zachowa się conajmniej nieprzewidywalnie ;) Funkcjonalność ograniczona została do plików JPG co biorąc pod uwagę możliwości PHP nie stanowi żadnej przeszkody.
A dobre wiadomości znajdują się tutaj:
- Jeśli nie wiesz czy jest sen czytać dalej, kliknuj tutaj.
- Jeśli się przekonałeś że warto to tu.
- W przeciwnym wypadku zostaje Ci już tylko to ;)
Let's do it :P
Plik chron.php
/*
PHP moze nie tylko generowac dynamicznie pliki HTML,
moze to byc rowniez grafika. Ta instrukcja poinformuje przegladarke
aby wygenerowany plik traktowal jak obrazek
*/
Header("Content-type: image/jpeg");
/*
Wywolanie glownej funkcji naszego skryptu.
Jako parametry przekazujemy kolejno:
adres_pliku_do_zabezpieczenia, adres_pliku_z_logiem
oba przekazane przez adres URL.
Jako wynik zwrocony zostanie polaczony obraz.
*/
znak_wodny($_GET['zdjecie'],$_GET['logo']);
/* Funkcja laczaca dwa obrazki w jeden */
function znak_wodny($zdjecie_img,$logo_img){
/* Otwieramy obydwa z nich */
$tlo=imagecreatefromjpeg($zdjecie_img); $znaczek= imagecreatefromjpeg($logo_img);
/*
Aby efekt koncowy wygladal przyzwoicie, tlo
naszego loga uczynimy przezroczystym dla reszty.
Wartosc koloru ktory stanowi tlo podajemy jako
skladowe RGB, tutaj: 0,0,0 - czyli czarny :)
*/
imagecolortransparent($znaczek,imagecolorexact($znaczek,0,0,0));
/*
Odczytujemy rozmiary obu obrazkow. Na ich podstawie
w kolejnym kroku obliczymy fizyczne polozenie loga :)
*/
$t_x=imagesx($tlo); $t_y=imagesy($tlo);
$z_x=imagesx($znaczek); $z_y=imagesy($znaczek);
/*
Laczymy oba obrazki, ustalajac polozenie loga w
prawy, dolny rogu. Dla wolniejszych:
$t_x-$z_x,$t_y - prawy, gorny rog ekranu
0,0 - lewy, gorny rog ekranu
0,$t_y-$t_y - lewy, dolny rog ekranu
Liczba 50 na koncu okresla stopen przenikania sie obrazow,
nalezy dobrac ja eksperymentalnie ;)
*/
imagecopymerge($tlo,$znaczek,$t_x-$z_x,$t_y-$z_y,0,0,$z_x,$z_y,50);
/* Wysylamy gotowe dzielo do przegladarki */
ImageJPEG($tlo,NULL,100);
/* Zwalniamy pamiec zarezerwowana przez wczytane obrazki */
ImageDestroy($tlo); ImageDestroy($znaczek);
}
?>
|
|
Dodane przez polak
dnia March 06 2007 11:30:18
13506 Czytań ·
|
|
|
|