[php] gdlib, tekst altijd op gelijke hoogte uitlijnen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Ik probeer dynamisch plaatje te genereren, maar loop tegen probleemje aan:

een woord als "logisch" is <hoger> dan een woord als "roes", omdat de l en h naar boven uitsteken en de g naar onder, wat niet het geval is bij roes. Hierdoor komt mijn verticale uitlijning niet gelijk vb:

eventesten
ofalleswerkt

relevante code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Header ("Content-type: image/png");

    $i_width  = 240;
    $i_height = 20;
    
    $fontfile = "./fonts/MonotypeCorsiva.ttf";
    $string = $_GET['tekst'];
    $im = imagecreate($i_width, $i_height);
    $white = imagecolorallocate($im, 224,0,0);
    $black = imagecolorallocate($im, 255,255,255);
    
    imageline($im, 0, 18, $i_width, 18, $black);
    $string_size = ImageFtBbox(18, 0, $fontfile, $string, array("linespacing" => 1));
    $s_width  = $string_size[4];
    $s_height = $string_size[5];
    
    ImageFtText($im, 17, 0, $i_width - $s_width,  1 - $s_height, $black, $fontfile, $_GET['tekst'], array("linespacing" => 1));
    
    ImagePng ($im, $sImgLoc);
    ImageDestroy ($im);


edit: note: code is nog beetje rotzooitje omdat ik gekopieerd heb en aangepast dus sommige vars bestaan niet eens


edit: Ik wil dus dat de tekst steeds op gelijkte hoogte uitgelijnt wordt (zoals de topictitel al zegt)
Dus de vraag: Hoe krijg ik dat voor elkaar?

[ Voor 57% gewijzigd door r0bert op 15-12-2004 21:47 ]


Acties:
  • 0 Henk 'm!

  • PanMan
  • Registratie: November 1999
  • Laatst online: 18-09 22:50

PanMan

Spun!

Ehrmz, misschien is het handig om een concrete vraag te stellen? Ik heb wel een vermoeden wat je wilt, maar wellicht kan je dat beter zelf ff uitleggen..

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Bij mij deed een simpele zoekopdracht naar "baseline" en "gd lib" (naar mijn mening) best bruikbare resultaten geven.

Heb jij dat al geprobeerd? Waarom lukte dat niet?

Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Nee, nog niet geprobeerd, ga ik zo direct doen

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Ik weet niet wat jij gevonden hebt, maar ik krijg het nog steeds niet voor elkaar

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

r0bert schreef op donderdag 16 december 2004 @ 16:44:
Ik weet niet wat jij gevonden hebt, maar ik krijg het nog steeds niet voor elkaar
Wat heb jij gevonden? Wat heb je nu allemaal al geprobeerd? Wat lukt daar niet meer? Kreeg je foutmeldingen?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Sendy
  • Registratie: September 2001
  • Niet online
Nou, ik ben geen expert met GD, maar ik had iets gevonden met een get() functie. Je kon daarmee de lengte onder en boven de baseline te weten komen.

Ik kan jammer genoeg niets in de GD manual daarvan vinden :?

Maar goed, een beetje zoeken (en nadenken) geeft mij reden om te vragen wat er buiten $string_size[4] en $string_size[5] nog allemaal meer in $string_size staat. (En daarna erachter komen dat $string_size een vreemde variabele naam is ;) )

En kan je je voorbeeldje (even testen...) live plaatsen?

[ Voor 44% gewijzigd door Sendy op 16-12-2004 20:02 ]

Pagina: 1