Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znak wodny i dostosowywanie się loga do obrazka
Forum PHP.pl > Forum > PHP
3502274
Witam,

tworząc na obrazku znak wodny poprzez PHP wszystko działa, lecz logo które dopisuje się do każdego pliku przybiera paletę braw danego obrazka który się uploaduje. A więc czasem traci bardzo na barwach i nie wygląda tak jak powinien.

Przykład:
- http://www.gryok.net/galeria/photoalbum/album_2/ssssss.gif
- http://www.gryok.net/galeria/photoalbum/al...lkroad_0086.jpg

tak logo które dopisuje się do każdego pliku powinno wyglądać docelowo:
- http://www.gryok.net/galeria/photoalbum/album_2/pngowski.png

wzorowałem się na tym:
- http://www.swww.pl/74,pokaz,Artykuly.html

Czy istnieje możliwość by logo zawsze zapisywało się jednolicie?
l0ud
Pamiętaj, że jeżeli np. używasz np. grafiki w GIF o małej liczbie kolorów, dodając tam ten obrazek odczujesz utratę jakości związaną z naturą 'rodzica'. Zapewne istnieje bardziej wydajne i bardziej eleganckie rozwiązanie, ale możesz spróbować zrobić to tak:

- utworzyć $img1 przez imagecreatetruecolor() z rozmiarami takimi jak rodzic
- utworzyć $img2 przez imagecreatefrom... z pliku rodzica
- skopiować przez imagecopy() zawartość $img2 na całą powierzchnię $img1, usunąć $img2
- utworzyć $img3 przez imagecreatefrom... z pliku znaku wodnego
- skopiować przez imagecopy() zawartość $img3 do rogu $img1, usunąć $img3
- wyświetlić albo zapisać przez imagejpeg() $img1
marcio
  1. <?php
  2. function img_on_img($plik, $znaczek, $pozycja) {
  3.  
  4. $image1 = imagecreatefromjpeg($znaczek);
  5. $image2 = imagecreatefromjpeg($plik);
  6. $plik_w = imagesx($image2);
  7. $plik_h = imagesy($image2);
  8. $znaczek_w = imagesx($image1);
  9. $znaczek_h = imagesy($image1);
  10.  
  11. if($pozycja == "tl") {
  12. $od_x = 0;
  13. $od_y = 0;
  14. }
  15. if($pozycja == "tr") {
  16. $od_x = $plik_w - $znaczek_w;
  17. $od_y = 0;
  18. }
  19. if($pozycja == "bl") {
  20. $od_x = 0;
  21. $od_y = $plik_h - $znaczek_h;
  22. }
  23. if($pozycja == "br") {
  24. $od_x = $plik_w - $znaczek_w;
  25. $od_y = $plik_h - $znaczek_h;
  26. }
  27.  
  28. imagecopy($image2, $image1, $od_x, $od_y, 0, 0, $znaczek_w, $znaczek_h);
  29. imagejpeg($image2);
  30. imagedestroy($image1);
  31. imagedestroy($image2);
  32.  
  33. }
  34. ?>

Ja uzywam cos takiego tylko sobie jeszcze dodam przezroczystosc img
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.