strona glownaartykulydownloadszukajreklamakontaktavataryregulamin

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.

Najnowsze artykuły:
Grafika i zdjęcia do projektów
Okrągły button
Usuwamy zmarszczki
Skróty klawiszowe
Miniaturkowy świat
Zdjęcia

Webmaster i grafik
dodatki, skrypty, generatory

avatarytutoriale do photoshopa

Szablony za SMS

+ Wszystkie (89)
+ 1 kolumna (33)
+ 2 kolumny (35)
+ Czarne (8)
+ Czerwone (16)
+ Niebieskie (16)
+ Opisy gg (5)

+ PHP-Fusion 6 (9)
+ PHP-Fusion 7 (4)
+ Pomara&#324czowe (4)
+ Portale (58)
+ Radio internetowe (4)
+ Zielone (10)
Polecamy
Tutaj kupisz odzież męską w dużych rozmiarach
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ń · Drukuj