Toon posts:

[PHP] ImageTTFText font size berekening probs..

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ey... nu ben ik weer eens aan het spelen geslagen met die GD lib en het loopt opeens allemaal erg fijn op mijn systeem, alleen nu zit ik met het volgende probleem dit is stukje uit mijn code, maar de berekening van de breedte van de fonts klopt geen bal van, hoe kan ik de daadwerkelijke breedte berekenen zodat ik mijn text goed kan positioneren :? Tnx
PHP:
1
2
3
4
5
6
7
8
<?
$end     = 400;
   $startheight = 40;
   $size    = 30;
   $start   = $end - ((strlen($username) * 15));
   
   ImageTTFText($plaatje, $size, 0, $start, $startheight, $zwart, "arial.ttf", $username);
?>

Afbeeldingslocatie: http://members.home.nl/erikjongen/test1.png
;)

Afbeeldingslocatie: http://members.home.nl/erikjongen/test2.png
B-)

Afbeeldingslocatie: http://members.home.nl/erikjongen/test3.png
:+

Afbeeldingslocatie: http://members.home.nl/erikjongen/test4.png
*D

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

PHP:
1
2
3
4
<?
$start   = $end - ((strlen($username) * 15));
$start   = $end - ((strlen($username) + 15));
?>

zoek de verschillen

Skill is when luck becomes a habit.


  • Orphix
  • Registratie: Februari 2000
  • Niet online
TrueType fonts hebben niet allemaal dezelfde breedte!

Verwijderd

Topicstarter
Op woensdag 02 januari 2002 18:19 schreef _eek_ het volgende:
PHP:
1
2
3
4
5
6
7
8
<?
$start   = $end - ((strlen($username) * 15));
$start   = $end - ((strlen($username) + 15));

ok.

$start   = $end - ((strlen($username) * 15));      
?>

zoek de verschillen
:? want * moet per letter toch?... niet + 15 , want ookal is je text dan 1 letter je voegt dan 1+15 toe = 16 - 400 = 384 en dus niet de positie waar de text moet beginnen :)

Verwijderd

Topicstarter
Op woensdag 02 januari 2002 18:22 schreef Orphix het volgende:
TrueType fonts hebben niet allemaal dezelfde breedte!
Nee okey maar hoe kan je dat toch berekenen, want het zal toch ergens berekend moeten worden, anders vallen er echt geen letters naar de volgende regel (om het zo ff te noemen... :D)

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

gadver je hebt gelijk, ik zit weer eens niet op
te letten, moet eerst maar eens wat gaan eten.

En dit opmerking dat ieder char in truetype fonts
niet dezelfde size heeft klopt. Dat is het probleem.

bah.

Skill is when luck becomes a habit.


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

Op woensdag 02 januari 2002 18:22 schreef Xtentic het volgende:
[..]
Nee okey maar hoe kan je dat toch berekenen, want het zal toch ergens berekend moeten worden, anders vallen er echt geen letters naar de volgende regel (om het zo ff te noemen... :D)
Breedte van de letters in een array stoppen en dan gaan rekenen :)

Verwijderd

Topicstarter
Op woensdag 02 januari 2002 18:24 schreef _eek_ het volgende:
gadver je hebt gelijk, ik zit weer eens niet op
te letten, moet eerst maar eens wat gaan eten.

En dit opmerking dat ieder char in truetype fonts
niet dezelfde size heeft klopt. Dat is het probleem.

bah.
:'( dus :(

Verwijderd

Topicstarter
Op woensdag 02 januari 2002 18:24 schreef Timpie2000 het volgende:

[..]

Breedte van de letters in een array stoppen en dan gaan rekenen :)
LOL, dat is lekker :9, nou 'kzie je over een week wel :+

Verwijderd

Topicstarter
kan iemand anders snel een routine schrijven die dat berekend per font :?... zou :9 zijn ;)

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

www.php.net/imagettfbbox

daar moet het wel mee kunnen denk ik
element 0 van 2 afhalen en je hebt de lengte

Skill is when luck becomes a habit.


Verwijderd

Topicstarter
zo zag ik het op php.net
PHP:
1
2
3
4
5
6
7
<?
$size = ImageTTFBBox ($fontsize, $angle, $fontfile, $text);
 $dx = max($size[2], $size[4]) - min($size[0], $size[6]); // extreme x
values
 $dy = max($size[1], $size[3]) - min($size[5], $size[7]); // extreme y
values
?>

moet werken volgens mij, maar dan moet ik wel aanpassen dat ie rekent totaan een bepaalde lengte...

Verwijderd

Topicstarter
:'( dat werkt dus niet 't is allemaal -1 :{

Verwijderd

Topicstarter
't werkt nu wel!!!! TNX PPL! :)

en dit is de code :) FREE CODE RULEZ!
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
   header("Content-type: image/png");   // We maken een GIF/PNG image...
   $font = "./fonts/georgiab.ttf";
   $plaatje = ImageCreateFromPNG ("header_empty.png");
   $zwart   = ImageColorAllocate($plaatje, 0, 0, 0);
   $end     = 400;
   $startheight = 40;
   $size    = 20;

   $xsize = ImageTTFBBox ($size, 0, $font, htmlspecialchars($text));
   ImageTTFText($plaatje, $size, 0, $end - $xsize[2], $startheight, $zwart, $font, htmlspecialchars($text)); //

   ImagePNG($plaatje);     // gebruik hier voor oudere versies dus ImageGIF()
   ImageDestroy($plaatje); // tenslotte nog even netjes de rommel opruimen
?>
Pagina: 1