Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> znak wodny na miniaturce i na oryginale, jak dodać tu i tu?
siutek
post 9.12.2010, 20:39:26
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

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


witam, jakiś czas temu popełniłem kod który generował mi miniaturke z wgranego zdjęcia JPG.

zachcialo mi sie dodawac znak wodny. wiec poszperalem w necie i znalazlem gdzies prosty skrypt, ktory przerobilem nieco na wlasny uzytek.
jednak znak wodny dodaje mi sie tylko do miniaturki... przyznam, że nie wiem jak przerobić kod, by znak był dodawany także do oryginału.

kod jak poniżej:
  1.  
  2. $imgSize=getImageSize("./usersFiles/".$_SESSION["usrLogin"]."/full/".$filename); //oryginal zdjecia
  3. if ($imgSize[0]>$imgSize[1]) $thumbSizeX=$thumbSize; else $thumbSizeX=intval($thumbSize*$imgSize[0]/$imgSize[1]); //ustalenie orientacji zdjecia
  4. $im=imageCreateTrueColor($thumbSizeX,$thumbSizeX/$imgSize[0]*$imgSize[1]);
  5. $im2=ImageCreateFromJpeg("./usersFiles/".$_SESSION["usrLogin"]."/full/".$filename);
  6.  
  7. if ($_POST["watermark"]==true) { //czy znak wodny ma byc dodany
  8.  
  9. $text = $_SESSION["usrLogin"]; //tresc znaku wodnego - login uzytkownika
  10. $size = 50; //bazowy rozmiar czcionki
  11. $font = "./font/verdanab.ttf";
  12.  
  13. $sW = imagesx($im2);
  14. $sH = imagesy($im2);
  15.  
  16. $arr = imagettfbbox($size, 0, $font, $text);
  17. $width = abs($arr[2] - $arr[0]) + 5;
  18. $height = abs($arr[1] - $arr[7]) + 1;
  19.  
  20. $newFontSize = ((((0.8 * $sW) * 100) / $width) / 100) * $size;
  21. /*obliczanie wlasciwej wielkosci czcionki dla osiagniecia znaku wodnego zajmujacego 80% szerokości zdjęcia */
  22.  
  23.  
  24. $newFontSize = round($newFontSize,0);
  25.  
  26. unset($arr,$width,$height);
  27.  
  28. $arr = imagettfbbox($newFontSize, 0, $font, $text);
  29. $width = abs($arr[2] - $arr[0]) + 5;
  30. $height = abs($arr[1] - $arr[7]) + 1;
  31.  
  32. $white = imagecolorallocatealpha($im2, 255, 255, 255, 80);
  33.  
  34. $posX = $sW - $width - 40;
  35. $posY = $sH;
  36. imagettftext($im2, $newFontSize, 0, $posX, $posY - 45, $white, $font, $text);
  37.  
  38. }
  39.  
  40. ImageCopyResampled($im,$im2,0,0,0,0,$thumbSizeX,$thumbSizeX/$imgSize[0]*$imgSize[1],$imgSize[0],$imgSize[1]);
  41. ImageDestroy($im2);
  42. ImageJpeg($im,"./usersFiles/".$_SESSION["usrLogin"]."/".$filename,100);
  43. unset($im,$im2,$thumbSizeX);


jak pisalem wyzej powyzszy kod generuje mi znak wodny tylko na miniaturce. Jak go przerobic by znak byl wpisywany takze w oryginał?
Go to the top of the page
+Quote Post
greycoffey
post 10.12.2010, 18:46:19
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

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


Może po prostu zamiast lokalizacji miniaturki podac lokalizacje normalnego obrazka?
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:11