Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Watermark (znak wodny)
iMax
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 4.07.2006

Ostrzeżenie: (10%)
X----


Szukam sposobu na zabezpieczenie fotek na stronie poprzez moje logo w rogu zdjecia. Sa jakies spogramy ale wszystko platne. Znacie jakies sposoby ?
Go to the top of the page
+Quote Post
Strzałek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


a znasz google?

http://google.pl/

Wchodzisz. Tam masz taką linijkę do wpisywania fraz.
Wpisujemy "php znak wodny".
I co!? Jest i to na samej gorze.

Proste nie? Ale zawsze lepiej napisać na forum i czekać na gotowe :/


--------------------
Go to the top of the page
+Quote Post
revyag
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Przenoszę na komputery i oprogramowanie


--------------------
-------------

------
Go to the top of the page
+Quote Post
urbizdw
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.05.2004

Ostrzeżenie: (0%)
-----


  1. <?php
  2. /**
  3.  * Klasa wstawia znak wodny do wszystkich obrazków znajdujących się w jednym kat
    alogu
  4.  * i wynik pracy zapisuje w plikach o takich samych nazwach, ale w innym katalog
    u.
  5.  * Sposób użycia jest przedstawiony pod definicją klasy.
  6.  * Całej konfiguracji dokonuje się w tablicy $this->config;
  7.  * Po usunięciu pierwszej linijki skrypt można wywoływać z poziomu przeglądarki 
    WWW.
  8.  * Bez tego zabiegu skrypt jest przeznaczony do wywoływania w wierszu poleceń po
    d linux'em
  9.  * (nie należy zapomnieć o fladze wykonywalności :] ).
  10.  * Zalecana jest jednak praca w wierszu poleceń, gdyż przetwarzanie może nieco p
    otrwać...
  11.  * Skrypt można wykorzystać pod warunkiem zachowania całego, nie zmienionego kom
    entarza.
  12.  *
  13.  * Kod bazuje na http://php.org.pl/artykuly/4/12
  14.  *
  15.  * @author Krzysztof Andrzej Błachut vel Bakus
  16.  */
  17. class znakwodny
  18. {
  19. /**
  20.  * Tablica konfiguracji
  21.  * @access public
  22.  */
  23. var $config = array(
  24. // Pozycja na jakiej ma zostać umieszczony znak wodny:
  25. // tl - lewy górny róg, tr - prawy górny róg
  26. // bl - lewy dolny róg, br - prawy dolny róg
  27. "pozycja" => "br",
  28. // obrazek ze znakiem wodnym:
  29. "znaczek" => "znaczek.png",
  30. // katalog z którego mają być brane obrazki:
  31. "katalog_zrodlowy" => "./zdjecia/",
  32. // katalog do którego mają trafiać już przerobione obrazki:
  33. "katalog_docelowy" => "./new/"
  34. );
  35. /**
  36.  * Tablica informacji o znaku wodnym
  37.  * @access private
  38.  */
  39. var $znaczek = array("w", "h", "handle");
  40.  
  41. /**
  42.  * Metoda inicjuje znak wodny do użycia
  43.  * @access public
  44.  */
  45. function utworz_znaczek()
  46. {
  47. $this->znaczek["handle"] = imagecreatefrompng($this->config["znaczek"]);
  48. $this->znaczek["w"] = imagesx($this->znaczek["handle"]);
  49. $this->znaczek["h"] = imagesy($this->znaczek["handle"]);
  50. }
  51.  
  52. /**
  53.  * Metoda stara się dodać do wszystkich plików we wskazanym katalogu znak wodny
  54.  * @access public
  55.  */
  56. function naloz_katalog()
  57. {
  58. $dir = opendir($this->config["katalog_zrodlowy"]);
  59. while (($file = readdir($dir)) !== false)
  60. {
  61. if($file != "." && $file != "..")
  62. {
  63. $this->naloz($file);
  64. }
  65. }
  66. closedir($dir);
  67. }
  68.  
  69. /**
  70.  * Metoda nakłada znak wodny na wskazany obrazek
  71.  * @access public
  72.  */
  73. function naloz($plik)
  74. {
  75. $image = imagecreatefromjpeg($this->config["katalog_zrodlowy"] . $plik);
  76. $plik_w = imagesx($image);
  77. $plik_h = imagesy($image);
  78.  
  79. switch($this->config["pozycja"])
  80. {
  81. case "tl":
  82. $od_x = 0;
  83. $od_y = 0;
  84. break;
  85. case "tr":
  86. $od_x = $plik_w - $this->znaczek["w"];
  87. $od_y = 0;
  88. break;
  89. case "bl":
  90. $od_x = 0;
  91. $od_y = $plik_h - $this->znaczek["h"];
  92. break;
  93. case "br":
  94. $od_x = $plik_w - $this->znaczek["w"];
  95. $od_y = $plik_h - $this->znaczek["h"];
  96. break;
  97. }
  98.  
  99. imagecopy($image, $this->znaczek["handle"], $od_x, $od_y, 0, 0, $this->znaczek["w"], $this->znaczek["h"]);
  100. imagejpeg($image, $this->config["katalog_docelowy"] . $plik);
  101. imagedestroy($image);
  102. print $this->config["katalog_docelowy"] . $plik . " readyn";
  103. flush();
  104. }
  105.  
  106. /**
  107.  * Metoda zwalnia pamięć po użytym znaku wodnym
  108.  * @access public
  109.  */
  110. function finalize()
  111. {
  112. imagedestroy($this->znaczek["handle"]);
  113. print "nDone!n";
  114. }
  115. }
  116.  
  117. $zw = new znakwodny();
  118. $zw->utworz_znaczek();
  119. $zw->naloz_katalog();
  120. $zw->finalize();
  121. ?>


Ten post edytował urbizdw 10.09.2006, 11:33:24


--------------------
www.infLAN.pl - Usługi informatyczne
Go to the top of the page
+Quote Post
TomASS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


A na php.net jest coś takiego


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:19