Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Rozdielny výstup imagettftext v PHP  (Přečteno 2612 krát)

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Rozdielny výstup imagettftext v PHP
« kdy: 08 Října 2010, 12:16:45 »
Zdravím.
V jednom súkromnom malom projekte sa snažím využiť PHP funkciu "imagettftext".
U mňa na localhoste vyzeral výsledok celkom fajn:





Žiaľ na hostingu vyzerá font nejak divne:



Test som robil na dvoch fontoch - predpokladám, že fontom to nebude. Pri druhom fonte nie je rozdiel taký veľký, ale o zhodnom výsledku nemôže byť reč.

Info som hľadal na slovenských, českých a anglických weboch, žiaľ nikde som nenašiel riešenie. Dúfam že som iba zle hľadal.

localhost: PHP Version 5.3.1, GD Version   bundled (2.0.34 compatible), FreeType Version   2.1.7
hosting: PHP Version 5.2.14, GD Version   bundled (2.0.34 compatible), FreeType Version   2.3.7

Môže novšia verzia FreeType spôsobiť horší výsledok?

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #1 kdy: 08 Října 2010, 12:59:22 »
První, co mě napadá, je že na hostingu zkrátka mají jiné fonty než máš ty...

Citace
fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
« Poslední změna: 08 Října 2010, 13:04:38 od mka »

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #2 kdy: 10 Října 2010, 10:44:54 »
Tak co???

Petr R.

  • Aktivní člen
  • *
  • Příspěvků: 154
  • ...
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #3 kdy: 10 Října 2010, 11:00:22 »
Nakopírovat si soubor s fontem do adresáře se skriptem:
Kód: [Vybrat]
<?php
imagettftext 
($image$size$angle$x$y$color"font.ttf"$text);
?>
namísto:
Kód: [Vybrat]
<?php
imagettftext 
($image$size$angle$x$y$color"/usr/share/fonts/font.ttf"$text);
?>
Ubuntu 11.10 "Oneiric Ocelot" | Oddíly (ext 4): /, /home, /www | PC Intel | Linux user #482261

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #4 kdy: 10 Října 2010, 12:43:43 »
Nakopírovat si soubor s fontem do adresáře se skriptem:
Kód: [Vybrat]
<?php
imagettftext 
($image$size$angle$x$y$color"font.ttf"$text);
?>
namísto:
Kód: [Vybrat]
<?php
imagettftext 
($image$size$angle$x$y$color"/usr/share/fonts/font.ttf"$text);
?>

Obávám se, že tu mrháme časem. Romciiik se nějak neozývá...

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #5 kdy: 16 Října 2010, 20:53:02 »
ospravedlňujem sa, nebol som prítomný..

Rozdielnymi fontami to asi nebude. Súbor TTF je fyzicky nekopírovaný v priečinku so skriptom.
Ono vidno že font je použitý správny, ale PHP na hostingu neberie do úvahy "niečo". Typujem, že to "niečo" bude hinting a kerning - resp. zle ho reprezentuje.

Našiel som na nete, že problém môže byť v knižnici FreeType2. Tento problém nastáva pri určitej konfigurácií kompilácie.
viz.: http://greyworld.net/en/projects/php-gd-better-freetype2/
.. ak to správne chápem.

Keďže neviem meniť knižnice na hostingu, tento problém sa pre mňa asi stáva neriešiteľným :(

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #6 kdy: 16 Října 2010, 23:30:52 »
No, ono obecně platí, že to, co je nějakým způsobem "systémově závislé", se může chovat systém od systému jinak...

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #7 kdy: 18 Října 2010, 15:46:38 »
ak mas na mysli linux verzus win, tak aj localhost aj hosting ide na linuxe

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #8 kdy: 18 Října 2010, 15:59:22 »
ak mas na mysli linux verzus win, tak aj localhost aj hosting ide na linuxe

Tak jsem to nemyslel. Předpokládám, že hosting bude běžet asi na debianu a ty máš (zřejmě) ubuntu. To, že to je oboje linux ještě neznamená, že jsou to stejné (identické) systémy. A právě v takovýchto detailech se mohou lišit. Stejně, jako se mnohdy více či méně liší vzhled webových stránek v různých prohlížečích - např. v mém případě vykresluje Opera písmo trochu jinak, než IceCat a "zbytek světa". A co s tím nadělám?

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #9 kdy: 18 Října 2010, 17:13:39 »
vyzerá, že je to neriešiteľný problém .. :(

Tomáš Břinčil

  • Občanské sdružení Ubuntu ČR
  • Závislák
  • ***
  • Příspěvků: 1610
  • moje obrázky ↓
    • TomasBrincil.cz
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #10 kdy: 18 Října 2010, 20:09:37 »
vyřešit vygenerovaným obrázkem, proč je potřeba ho dynamicky generovat?

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #11 kdy: 18 Října 2010, 21:08:58 »
Nebol by problém generovať českú a slovenskú mutáciu jednoduchou úpravou.

Zabudol som tuším dodať príklad použitia: image.romiix.org

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #12 kdy: 18 Října 2010, 22:47:34 »
Jen tak od boku mne napadlo, zda-li by nepomohlo použít ImageMagick místo GD??
jabber: etnyx@jabbim.cz

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #13 kdy: 19 Října 2010, 18:35:18 »
ako presne?
nejaký nápad? imagemagick by musel byť aj na servery. predpokladám že na štandardnom websupport hostingu takú službu nemôžem očakávať.

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: Rozdielny výstup imagettftext v PHP
« Odpověď #14 kdy: 19 Října 2010, 21:03:36 »
Říkám, že je to střelba od boku :-D

v Ubuntu je to balíček http://packages.ubuntu.com/maverick/php5-imagick na php.net to najdeš zde http://cz.php.net/manual/en/book.imagick.php. Pokud si vypíšeš echo phpinfo(); tak, pokud tu knihovnu hosting má, tak ji tam najdeš.

Vím o tom, protože jsem to na jeden svůj server přidával, protože jednomu zákazníku gd nestačila (nelíbila se nebo ja nevím). Tak jsem to nainstaloval zběžně otestoval a usoudil, že to tam můžu nechat a od tý doby jsem se o to moc nezajímal.

Je to jako gd knigovna pro práci s obrázky. Celkem jsem ti neřekl nic co by jsi nenašel po 5 minutách na googlu :-) Víc fakt nevím, promiň.

EDIT: jestli jsem se těma závyslostma proklikal spravně tak to vypada, obě ty hnihovny používájí stejný balíček libfreetype6 (2.4.2-2) takže jestli je to problém té knihovny jak jsi psal tak na tvém hostingu ti to asi nepomůže :-(
« Poslední změna: 19 Října 2010, 21:13:12 od ETNyx »
jabber: etnyx@jabbim.cz

 

Provoz zaštiťuje spolek OpenAlt.