Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> GD, słaba jakość i za duży napis
n33thl
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 17.08.2009

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


Witam. Mam skrypt, który generuje dynamiczny napis na obrazku (napis wyciągany z bazy danych). Problem jest w tym, że generowany obraz jest w tragicznej jakości i ma za duże te napisy.
http://r4ffi.info/statusek/cs-bytow_ffa_bf2_userbar.php
  1. <?php
  2. $db_host = "xxx";
  3. $db_user = "xxx";
  4. $db_pass = "xxx";
  5. $db_base = "xxx";
  6. $db = mysql_connect($db_host, $db_user, $db_pass);
  7. mysql_select_db($db_base, $db);
  8. $bf2_1 = mysql_query('SELECT * FROM statusy WHERE id="1"');
  9. $bf2 = mysql_fetch_array($bf2_1);
  10. $rysunek = imagecreatefromjpeg("userbar.jpg");
  11. $bialy = ImageColorAllocate($rysunek, 255, 255, 255);
  12. $nieb = ImageColorAllocate($rysunek, 0, 255, 255);
  13. $czar = ImageColorAllocate($rysunek, 0, 0, 0);
  14. $zielony = ImageColorAllocate($rysunek, 16, 160, 34);
  15. ImageString($rysunek, 70, 230, 1, '' .$bf2['map']. '', $bialy);
  16. ImageString($rysunek, 70, 180, 1, '' .$bf2['active']. '/' .$bf2['max'] . '', $bialy);
  17. header("Content-type: image/jpeg");
  18. ImageJpeg($rysunek);
  19. ?>

Normalnie obraz w JPG jest bardzo dobrej jakości
(IMG:http://r4ffi.info/statusek/userbar.jpg)
Próbowałem to robić w formatach PNG, GIF ale ciągle jakość jest ta sama. Może na tym obrazku to lepiej widać:
http://cs-bytow.pl/statusy/cs-bytow_ffa_bf2.php
A normalnie:
(IMG:http://cs-bytow.pl/statusy/cs-bytow_ffa_bf2.jpg)
Z góry dziękuję za jakieś rady.
Go to the top of the page
+Quote Post
nmts
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 34
Dołączył: 21.03.2008

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


Spróbuj użyć lepszą imagettftext, może zmieniać czcionkę, wielkość, kąt i wygładza napisy. Używam jej wraz z plikami png i jakość jest najlepsza. Jeśli dodawanie napisów nie jest powiązane z pogorszeniem jakości to może masz jakąś starą bibliotekę GD.
Go to the top of the page
+Quote Post
n33thl
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 17.08.2009

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


Hmm zmieniłem wszystko na te imagettftext, wygląda ładnie, tylko jest jeden szczegół. Nie wyświetla tła...
  1. <?php
  2. $db_host = "x";
  3. $db_user = "x";
  4. $db_pass = "x";
  5. $db_base = "x";
  6. $db = mysql_connect($db_host, $db_user, $db_pass);
  7. mysql_select_db($db_base, $db);
  8. $bf2_1 = mysql_query('SELECT * FROM statusy WHERE id="1"');
  9. $bf2 = mysql_fetch_array($bf2_1);
  10. $bgpic = 'userbar.png';
  11. header('Content-type: image/png');
  12. $im = imagecreatefrompng($bgpic);
  13. $white = imagecolorallocate($im, 255, 255, 255);
  14. $grey = imagecolorallocate($im, 128, 128, 128);
  15. $black = imagecolorallocate($im, 0, 0, 0);
  16. imagefilledrectangle($im, 0, 0, 399, 29, $white);
  17. $text = '' .$bf2['active']. '/' .$bf2['max']. ', ' .$bf2['map']. '';
  18. $font = 'arial.ttf';
  19. imagettftext($im, 10, 0, 11, 11, $grey, $font, $text);
  20. imagettftext($im, 10, 0, 10, 10, $black, $font, $text);
  21. imagepng($im);
  22. imagedestroy($im);
  23. ?>

http://r4ffi.info/statusek/lepsze.php
Wielkość tego obrazka jest równa temu "userbarowi", tylko coś tego userbara nie widać.
(IMG:http://r4ffi.info/statusek/userbar.png)

Ten post edytował n33thl 20.12.2009, 16:52:42
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Dla określenia barwy tła użyj funkcji
imagefilledrectangle

Dla koloru przeźroczystości
imagecolortransparent

Ten post edytował darko 20.12.2009, 16:55:13
Go to the top of the page
+Quote Post
n33thl
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 17.08.2009

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


Dzięki, wszystko działa, znowu mi pomogłeś (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 25.08.2025 - 05:03