Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie grafiki GD, TEKST
Gray
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 5.04.2010

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


Witam, znalazłem pewien tutorial odnośnie tworzenia grafiki za pomocą GD. Zmodyfikowałem delikatnie kod który tam był opisany i w efekcie posiadam taki kod:

  1. <?php
  2. $tekst=$_POST['tekst'];
  3.  
  4. $data_img=date('dmYHis');
  5. $uploaddir = 'img/upload/'.$data_img.'-slowo.png';
  6.  
  7. $im = @imagecreate(200, 100)
  8. or die("Cannot Initialize new GD image stream");
  9. $background_color = imagecolorallocate($im, 0, 0, 0);
  10. $text_color = imagecolorallocate($im, 255, 255, 255);
  11. imagestring($im, 1, 5, 5, $tekst, $text_color);
  12. imagepng($im, $uploaddir);
  13. ImageDestroy($im);
  14. ?>


Oczywiście do jego obsługi wystarczy prosty formularz z oknem textowym "tekst". Ale do rzeczy, kod ten tworzy czarny prostokąt i na nim biały napis. Chciał bym móc manipulować tym tekstem i wielkością prostokąta. Dokładniej mówiąc chciał bym móc ustawić marginesy dla tekstu i jego wyśrodkowanie lub wyjustowanie, odpowiednie zawijanie wierszy w przypadku dłuższego tekstu, skalowanie wielkości prostokąta względem ilości tekstu i wielkości czcionki lub na odwrót, wielkości czcionki względem wielkości prostokąta. I czy jest możliwość stosowania zaawansowanych opcji do samej czcionki, takich jak używa się w css.

Pozdrawiam,
Gray

Ten post edytował Gray 23.10.2011, 20:49:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Gray
post
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 5.04.2010

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


Wiem, że podał, już wcześniej ktoś inny ją podał i ja ją wykorzystuję w pętli którą podałem wyżej:

  1. $wielkoscczcionki=20;
  2. $enter=40;
  3. $szerokosc=531;
  4. while($szerokosc>490){
  5.  
  6. $newtext = wordwrap($text, $enter, "\n", TRUE);
  7. $bboxx = imagettfbbox($wielkoscczcionki, 0, $font, $newtext);
  8. $szerokosc = $bboxx[4] - $bboxx[6];
  9. $enter--;
  10. }


Sprawdza ona szerokość podzielonego na wiersze tekstu przy początkowo przyjętej ilości znaków po której następuje "enter" jako 40. Jeśli wykryje, że ta szerokość jest większa niż pożądana to zmniejsza ilość znaków po których następuje "enter" o 1. Będzie zmniejszało długość pojedynczego wiersza aż całość zmieści się w podanej szerokości czyli 490.

Staram się napisać teraz podobną pętlę do wysokości, jednak nie będzie redukowała ona długości pojedynczego wiersza, zamiast tego będzie zmniejszała wielkość czcionki. Jednak póki co nie bardzo mi to wychodzi.
Go to the top of the page
+Quote Post

Posty w temacie
- Gray   Generowanie grafiki GD, TEKST   23.10.2011, 20:46:33
- - croc   PHP GD nie posiada takich opcji. Jedyne co możesz ...   23.10.2011, 22:46:37
- - Pawel_W   imagettfbbox to Ci pomoże do zabawy z wielkością p...   23.10.2011, 23:07:51
- - Gray   Dzięki Paweł_W za podpowiedz, w gruncie rzeczy mys...   24.10.2011, 00:13:15
- - croc   W odpowiedzi na to pytanie nie ma nic o czym nie w...   24.10.2011, 12:16:16
- - Gray   Hmm, z tym dzieleniem na słowa i sprawdzaniem czy ...   25.10.2011, 19:20:52
- - dwwa   jak dobrze pamiętam to funkcja imageftbbox() ci po...   25.10.2011, 19:59:56
- - Gray   Ta właśnie jestem w trakcie maglowania tej funkcji...   25.10.2011, 20:04:26
- - croc   Twoja metoda nie ma sensu. Porównaj wyniki z użyci...   25.10.2011, 20:15:07
- - dwwa   http://pl.php.net/manual/en/function.imagettftext....   25.10.2011, 20:22:50
- - croc   No właśnie. Dokładnie o coś takiego chodzi. Proble...   25.10.2011, 20:27:21
- - Gray   Wiem, że podał, już wcześniej ktoś inny ją podał i...   25.10.2011, 20:27:51
- - croc   wordwrap jest tutaj bezużyteczny.   25.10.2011, 20:31:02
- - Gray   tzn. nie wiem czy jest bezużyteczny w bardzo zopty...   25.10.2011, 20:35:11
- - croc   Bezużyteczny, bo - jak napisałem powyżej - jeden c...   25.10.2011, 20:38:25
- - Pawel_W   obiło mi się kiedyś o uszy coś takiego jak phpHyph...   25.10.2011, 21:52:45
- - croc   Temat jest bardzo ciekawy. To może przydać: http:/...   25.10.2011, 22:01:37
- - Gray   Heh fajnie, że kogoś to zainspirowało. Ja jestem p...   26.10.2011, 00:53:48
- - croc   Cytat(Gray @ 26.10.2011, 01:53:48 ) i...   26.10.2011, 01:08:54
- - Gray   Nie bardzo rozumiem, poco liczyć długość wszystkic...   26.10.2011, 03:17:36
- - croc   Nie możemy sobie wstawiać "spacji", bo s...   26.10.2011, 11:01:07
- - Gray   Małe pytanie odnośnie GD i tekstu... dlaczego kied...   2.11.2011, 18:41:57
- - croc   stripslashes   2.11.2011, 18:47:07
- - Gray   pomogło, dzięki!   2.11.2011, 18:52:18


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 10:38