Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]imagettftext nie z obrazu tylko z tekstu., jak poprawnie wykonać tworzenie JPG z tekstu.
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Borykam się z pewną sytuacją, chcę stworzyć JPG tylko z tekstu.

  1. $font = 'arial.ttf';
  2. $font_size = 12;
  3. $text = 'jakis tekst';
  4. $h = 650;
  5. $w = 60;
  6.  
  7. $ob = ImageCreate($h,$w);
  8. $text_color= ImageColorAllocate($ob,104,104,104);
  9. $bg_color = imagecolorallocate($ob, 208, 208, 208);
  10. $bg_color2 = imagecolorallocate($ob, 229, 229, 229);
  11.  
  12. ImageFill($ob,0,0,$bg_color);
  13. imagettftext($ob, $font_size, 0, 10, 17, $text_color, $font, 'test 1:');
  14. header('Content-type: image/png');
  15. ImagePng($ob);
  16. ImageDestroy($ob);


Obrazek zostaje stworzony, teraz chcę dodać drugi tekst do tego obrazka ale z tłem bg_color2.

  1. ImageFill($ob,0,0,$bg_color);
  2. imagettftext($ob, $font_size, 0, 10, 17, $text_color, $font, 'test 1:');
  3. ImageFill($ob,0,0,$bg_color2);
  4. imagettftext($ob, $font_size, 0, 10, 47, $text_color, $font, 'test 2:');


Nie przynosi zamierzonego efektu. Ogólnie chcę osiągnąć coś takiego , że pod każdym tekstem będzie na przemian inny bg_color.
Reasumując będzie z 10 "rowów" na przemian z innym tłem, szerokość i wysokość każdego ta sama.

Teraz kilka pytań :
- wysokość tego "rowu" gdzie tekst będzie za długi powiększy mi o + 30 px. Rozumiem, że muszę sobie wyliczyć ile tekstu mi wejdzie (chyba strlen ?), potem zliczać wpisany tekst i jeśli wyjdzie więcej to tworzyć + 30 px ? tak

- jak i czy jest możliwość by każdy "row" miał border 1 px ?

Ten post edytował casperii 19.07.2015, 16:32:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


a zaglądałeś w ogóle do manuala?
ImageFill - Performs a flood fill starting at the given coordinate (top left is 0, 0) with the given color in the image.

Czyli co? W momencie, kiedy robisz drugi raz imagefill, przykrywasz tłem to co zrobiłeś na początku. Do tej funkcji, możesz podać współrzędne od których ma się zacząć wypełnianie.
Co do obramowania, pewnie, wszystko można, wejdź do manuala, pełno funkcji do rysowania kresek, figur itp
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 04:41