Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: png gd
Forum PHP.pl > Forum > PHP
krysteck
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);
?>
Lejto
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
krysteck
ustawienie jakości na 100 w tym wypadki nic nie zmienia sadsmiley02.gif . probowalem rowniez z jpeg.
Lejto
ten kod co podałeś jest całkowity jeżeli nie to podaj cały to przetestuje
bim2
Nie możesz użyć imagestring" title="Zobacz w manualu PHP" target="_manual?
pyro
lub poprostu uzyj innej czcionki...
l0ud
Umieść gdzieś ten czarny obrazek .png który utworzyłeś, bo to w nim tkwi problem smile.gif
krysteck
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!!
l0ud
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.
krysteck
niestety, próbowałem z różnymi wersjami czcionki.. efekt ten sam.. chyba nie da się tego przeskoczyc sadsmiley02.gif
l0ud
Jaka wersja PHP? Umieść całe archiwum zawierające czcionkę, plik png i skrypt generujący. Jak już pisałem - u mnie działa.
Zbychu666
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

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.