Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> png gd, problem z jakością czcionki
krysteck
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.06.2008

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


Witam,
Mam problem z gd oraz z obrazkiem .png (w niektórych miejscach jest przeźroczysty). Po utworzeniu napisu niektóre literki są nieczytelne - jakby brakowało w nich pixeli. Po wywołaniu skryptu: test.php?text=wwwWWWwwprzyklad efekt jest następujący:

(Dla tego przykładu stworzyłem pusty, czarny obrazek .png na którym najlepiej widzieć w czym jest błąd)
Czy da radę w jakiś sposób poprawić jakość wyświetlanego tekstu?

CODE
header("Content-type: image/png");
$text = $_GET['text'];
$im = imagecreatefrompng("test.png");
$kolor = imagecolorallocate($im, 255, 255, 255);
$czcionka = "./verdana.ttf";
$wielkosc_czcionki = 7.5;

// obliczamy dlugosc znakow by znac polozenie od prawej krawedzi
$dlugosc_text = imagettfbbox($wielkosc_czcionki, 0, $czcionka, $text);
$dx_text = (imagesx($im)) - (abs($dlugosc_text[2]-$dlugosc_text[0]));

imageSaveAlpha($im, true);
ImageAlphaBlending($im, true);

// ujemna wartosc koloru wylacza antyaliasing
imagettftext($im, $wielkosc_czcionki, 0, $dx_text, 15, -$kolor, $czcionka, $text);
imagepng($im);
imagedestroy($im);
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Lejto
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


imagepng" title="Zobacz w manualu PHP" target="_manual
czyli:
  1. <?php
  2. $jakosc = '100'; // 1-100
  3. imagepng($im,$jakosc);
  4. ?>

więcej w manualu


--------------------
Go to the top of the page
+Quote Post
krysteck
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.06.2008

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


ustawienie jakości na 100 w tym wypadki nic nie zmienia sadsmiley02.gif . probowalem rowniez z jpeg.
Go to the top of the page
+Quote Post
Lejto
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


ten kod co podałeś jest całkowity jeżeli nie to podaj cały to przetestuje


--------------------
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Nie możesz użyć imagestring" title="Zobacz w manualu PHP" target="_manual?


--------------------
Go to the top of the page
+Quote Post
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


lub poprostu uzyj innej czcionki...


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
l0ud
post
Post #7





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Umieść gdzieś ten czarny obrazek .png który utworzyłeś, bo to w nim tkwi problem smile.gif


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
krysteck
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.06.2008

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


tak - jest to kompletny kod.
jest to typowy, zwykły obrazek png (taki utworzony w paincie winksmiley.jpg ).
oto jego adres:
.
w imagestring nie moge zastosowac innej czcionki. Jesli chodzi o czcionke, to bardzo by mi zalezalo na verdanie 7 badz 7.5 i zastanawiam sie czy moze popelnilem gdzies blad w kodzie, czy tez jest mozliwe w jakis inny sposob uzyskanie napisu czcionka ttf
dziekuje za zainteresowanie tematem!!
Go to the top of the page
+Quote Post
l0ud
post
Post #9





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


krysteck, no nie wiem - ja uruchomiłem ten kod nawet na obrazku który dałeś, i nie ma żadnych problemów (tzn tekst jest czytelny). Jesteś pewny, że używasz właściwej czcionki, a nie np. jakiejś jej odmiany? 'Moja' verdana.ttf zajmuje dokładnie 171 792 bajtów.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
krysteck
post
Post #10





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.06.2008

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


niestety, próbowałem z różnymi wersjami czcionki.. efekt ten sam.. chyba nie da się tego przeskoczyc sadsmiley02.gif
Go to the top of the page
+Quote Post
l0ud
post
Post #11





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Jaka wersja PHP? Umieść całe archiwum zawierające czcionkę, plik png i skrypt generujący. Jak już pisałem - u mnie działa.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Zbychu666
post
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

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


Cytat(krysteck @ 29.06.2008, 19:00:50 ) *
// ujemna wartosc koloru wylacza antyaliasing
imagettftext($im, $wielkosc_czcionki, 0, $dx_text, 15, -$kolor, $czcionka, $text);


Wywal ten minus sprzed koloru, to czcionka będzie miała antialiasing - czyt. nie będzie brakowało pikseli w literkach... smile.gif

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:18