Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Znak wodny do zdjęcia, nie działa dlas PNG 24, Co robię źle?
kukix
post 26.05.2011, 13:19:50
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Witam.
Posiadam funkcje do nakładania znaku wodnego.
Problem w tym, że jak chce użyć znaku wodnego PNG 24 (z photoshopa) to źle sioęon wyświetla. Jakieś szlacki się pokaują zamiast znaku.

Co mogę zrobic, żeby działały te pliki? Czy któreś funkcje są źle użyte?
Czy jakąś funkcje muszę zamienić na inną?

  1. //$zdjecie - na to zdjecie bedzie wklejany znak wodny
  2. //$zdjecie_format - format tego djecia
  3. //$znaczek - znak wodny
  4. //$znaczek_format - format pliku znaku wodnego
  5.  
  6. function znak_wodny($zdjecie, $zdjecie_format, $znaczek, $znaczek_format, $pozycja, $transparent, $znak_pozycja_pion=0, $znak_pozycja_poziom=0) {
  7.  
  8. switch($znaczek_format) {// importujemy plik gif ze znakiem
  9. case 'gif':
  10. $image1 = imageCreateFromGif($znaczek);
  11. break;
  12.  
  13. case 'png':
  14. $image1 = imageCreateFromPng($znaczek);
  15. break;
  16. }
  17.  
  18. switch($zdjecie_format) {// otwieramy plik jpg, na którym ma być naklejony znaczek
  19. case 'jpg':
  20. $image2 = ImageCreateFromJpeg($zdjecie);
  21. break;
  22.  
  23. case 'gif':
  24. $image2 = ImageCreateFromGif($zdjecie);
  25. break;
  26.  
  27. case 'png':
  28. $image2 = ImageCreateFromPng($zdjecie);
  29. break;
  30. }
  31.  
  32. $zdjecie_w = imagesx( $image2 ); // szerokość pliku
  33. $zdjecie_h = imagesy( $image2 ); // wysokość pliku
  34. $znaczek_w = imagesx( $image1 ); // szerokość znaczka
  35. $znaczek_h = imagesy( $image1 ); // wysokość znaczka
  36.  
  37. if ( $pozycja == "tl" ) {
  38. $od_x = $znak_pozycja_poziom;//ok
  39. $od_y = $znak_pozycja_pion; //ok
  40. }
  41.  
  42. if ( $pozycja == "tr" ) {
  43. $od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
  44. $od_y = $znak_pozycja_pion;//ok
  45. }
  46.  
  47. if ( $pozycja == "bl" ) {
  48. $od_x = $znak_pozycja_poziom;//ok
  49. $od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion; //ok;
  50. }
  51.  
  52. if ( $pozycja == "br" ) {
  53. $od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
  54. $od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion; //ok
  55. }
  56.  
  57. //begin center
  58.  
  59. if ( $pozycja == "cl" ) { //NIE
  60. $od_x = $znak_pozycja_poziom;//ok
  61. $od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
  62. }
  63.  
  64. if ( $pozycja == "cr" ) { //NIE
  65. $od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
  66. $od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
  67. }
  68.  
  69. if ( $pozycja == "bc" ) { //NIE
  70. $od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
  71. $od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion;//ok
  72. }
  73.  
  74. if ( $pozycja == "tc" ) { //NIE
  75. $od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
  76. $od_y = $znak_pozycja_pion;//ok
  77. }
  78.  
  79. if ( $pozycja == "cc" ) { //NIE
  80. $od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
  81. $od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
  82. }
  83.  
  84. //end center
  85.  
  86. imagecopymerge( $image2, $image1, $od_x, $od_y, 0, 0, $znaczek_w, $znaczek_h, $transparent );
  87.  
  88. //imagejpeg( $image2 );
  89.  
  90. switch($zdjecie_format) {
  91. case 'jpg':
  92. ImageJpeg($image2, $zdjecie, 70);//poziom kompresji 80
  93. break;
  94.  
  95. case 'gif':
  96. ImageGif($image2, $zdjecie);
  97. break;
  98.  
  99. case 'png':
  100. ImagePng($image2, $zdjecie);
  101. break;
  102. }
  103.  
  104. imagedestroy( $image1 );
  105. imagedestroy( $image2 );
  106. }


Prosze o pomoc, mam z tym duży problem sad.gif

Ten post edytował kukix 26.05.2011, 13:24:59
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:59