Autor | Zpráva | ||
---|---|---|---|
CZghost Profil |
#1 · Zasláno: 27. 4. 2014, 17:45:02
Zdravím všechny členy diskuse. Dělám si experimentální skript pro výpis textu do obrázku, bohužel funkce imagestring a z ní odvozeniny umí pouze text ve formátu Latin-2 (tedy unixový formát iso-8859-2). Z toho plyne problém, pokud chci vygenerovat text s diakritikou (tedy s českými znaky). Existuje nějaká funkce, která umí převést formát UTF-8 do Latin-2? Jsem v PHP nováčkem, zkoušel jsem googlit, ale pořád nacházím opačný postup.
|
||
lionel messi Profil |
Asi hľadáš funkciu iconv.
Malo by fungovať function prevedKodovanie($string) { $string = inconv("utf-8", "iso-8859-2", $string); return $string; } |
||
CZghost Profil |
#3 · Zasláno: 27. 4. 2014, 17:57:45
lionel messi:
Děkuju, to je přesně to, co potřebuju, funguje to bezvadně :) |
||
Chro Profil |
#4 · Zasláno: 27. 4. 2014, 18:01:39
CZghost:
Písmo produkované funkcí imagestring je neproporční a vzhledově příšerné. Pokud bys chtěl proporční a pěkné, použij funkci http://www.php.net/manual/en/function.imagettftext.php a soubor s TTF fontem podporující diakritiku. Pokud toto všechno víš, považuj můj příspěvek za bezpředmětný. |
||
CZghost Profil |
#5 · Zasláno: 27. 4. 2014, 18:46:47
Chro:
Jenom experimentuju, neproporční písmo není taková hrůza :-) S TTF fonty je moc práce, musel bych spočítat výšku textu, šířku pro každý znak v textu (text je navíc proměnný, musel bych to nějak ošetřit pro každičký znak v souboru s fontem), spočítat umístění na řádku společně s paddingem, atd. Kód by se tím hrozně nafouknul, jenom pro vygenerování hezkého textu. Proto používám základní funkci pro výpis textu do obrázku, je to jednoduché. Navíc si nemyslím, že by tato písma nějak hyzdila vzhled, má to určitou funkci, na grafy se hodí ideálně. |
||
Chro Profil |
#6 · Zasláno: 27. 4. 2014, 18:58:03
Jakou výšku a šířku na obrázku zabere text vypsaný imagettftext, lze jednoduše vypočítat funkcí
http://www.php.net/manual/en/function.imagettfbbox.php Nemusíš rozpitvávat každičký znak TTF fontu. :-) |
||
Časová prodleva: 11 let
|
0