Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyśrodkowanie tekstu na danym obszarze grafiki
Forum PHP.pl > Forum > Przedszkole
mlody69
Witam,
załóżmy że mam obrazek 600x600px i nad dolną krawędzią jest prostokąt pod kątem ~15stopni w którym chcę umieścic wyśrodkowany tekst (również pod kątem, maks. 15 znaków).
Przeszukałem forum, sieć ale znalazłem informacje jak wyśrodkować tekst pionowo i poziomo ale względem całego obrazka a nie danej jego części. Będę wdzieczny za jakiekolwiek wskazówki jak sobie z tym poradzić, również z wielkością czionki w zależności od długości tekstu tak aby nie wyszedł poza dany obszar.

Z góry dziękuje.
daWeb
dajesz ten obrazek jako background-image, a potem robisz drugiego div-a w którym wpisujesz tekst i ustawiasz mu position:absolute

  1. <div style="background-image: url(link)">
  2. <div style="position:absolute;">
  3. tekst
  4. </div>
  5. </div>


resztę sam sobie oblicz ile ma być top, left pozycji div-u z tekstem.
mlody69
@up
Takie rozwiazanie nie wchodzi w grę gdyż obrazek z tekstem będzie pobierany przez użytkownika na dysk.
daWeb
W taki razie jest 10 innych rozwiązań np.

  1.  
  2. <a href="link" download="obrazek.jpg" title="obrazek">
  3. <div style="background-image: url(link)">
  4. <div style="position:absolute;">
  5. tekst
  6. </div>
  7. </div>
  8. </a>


a można i na tagu img wypozycjonować tekst
mlody69
No ale przecież po wpisaniu tekstu divem nie będzie go po pobraniu obrazka..
daWeb
sry pośpieszyłem się..

musisz użyć jakiejś biblioteki do modyfikacji obrazków GD2, Imagine poniżej daję przykład dodawania tekstu na obrazek używając GD2

  1. // ustawiamy nagłówek z odpowiednim formatem obrazka
  2. header('Content-type: image/jpeg');
  3.  
  4. // ładujemy obrazek
  5. $jpg_image = imagecreatefromjpeg('sunset.jpg');
  6.  
  7. // kolor tekstu
  8. $white = imagecolorallocate($jpg_image, 255, 255, 255);
  9.  
  10. // krój czcionnki
  11. $font_path = 'font.TTF';
  12.  
  13.  
  14. $text = "tekst";
  15.  
  16. // wrzucamy tekst na obrazek
  17. imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
  18.  
  19. // wyrzucamy do użytkownika
  20. imagejpeg($jpg_image);
  21.  
  22. // czyszczenie pamięci
  23. imagedestroy($jpg_image);
  24.  


więcej funkcji na http://php.net/manual/en/book.image.php
mlody69
Tekst jak dodawać i generować obrazek to wiem, kod mam. Chcę wiedzieć jak go wyśrodkować na danym obszarze obrazka.
daWeb
Jeżeli wiesz ile dany obszar ma wymiaru i jaką ma pozycje na obrazku, to nie powinieneś mieć problemów z nałożeniem na niego tekstu. Natomiast, jeżeli zmienia się to dynamicznie, czyli nie jesteś w stanie określić gdzie się znajduje dany obszar na obrazku - to masz problem.

Rozwiązanie jaki mi przychodzi do głowy, to oddzielić lub tworzyć w GD obszar na który nakładasz tekst, czyli pierwsze modyfikujesz już oddzieloną cześć od obrazka bazowego dodając na nią tekst, a potem wklejasz i ustawiasz go do obrazka bazowego.
mlody69
Obszar na obrazku jest stały, tylko tekst w danym obszarze będzie zmienny.
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.