Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: znak wodny na miniaturce i na oryginale
Forum PHP.pl > Forum > PHP
siutek
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ł?
greycoffey
Może po prostu zamiast lokalizacji miniaturki podac lokalizacje normalnego obrazka?
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.