Avatar billede krydset Nybegynder
07. juni 2004 - 10:24 Der er 12 kommentarer og
1 løsning

centrer tekst på billede

Hejsa jeg sidder og leger med noget text centrering på billeder men kan ikke få teksten til stå i midten, jeg kan godt få den til at starte i midten med den arbejder sig mod højre og mod toppen og det er jo klart når jeg siger height / 2 og width / 2 men hvad skal jeg trække fra for at få det til at være i midten hele tiden ?

her er der lidt kode
<?PHP
//fortæller hvilket output der skal ske til browser
header("Content-type: image/jpeg");
//Stien til billedet
$billede_kilde = "http://www.pc-dk.dk/newvision/images/headersectiobar_03.jpg";
//Text der skal printes på billedet
$text = "Thomas";
//Tilladte filtyper
$allowed_files = array("jpg", "png");
//Smider noget info om billedet i et array.
$info = pathinfo($billede_kilde);
//Finder billedets type (extension) .txt, .jpg etc..
$ext = $info['extension'];
//Laver $ext til små bogstaver, så at der kendes forskel mellem stor og små extesions eks. .jpg og .JPG
$ext = strtolower($ext);
//Tjekker om filtypen er tilladt
if(in_array($ext, $allowed_files)) {
    //Lav et nyt billede
    $billede = imagecreatefromjpeg($billede_kilde);
    //Smid billede størrelse i et array
    $size = getimagesize($billede_kilde);
    //Del billed legth og widt ud i variabler
    $width = $size[0];
    $height = $size[1];
    //tekst box her som laver teksten på billedet
    $text_size = "20";                        //størrelse på fonten
    $text_angle = "0";                        //Vinkelen på texten
    $text_font = "c:\winnt\fonts\verdana.ttf";    //Sti til font på servem
    $textbox = imagettfbbox($text_size, $text_angle, $text_font, $text);
    //Finder ud hvor teksten skal stå på billedet
    $textx = $tekstbox[4];
    $texty = $tekstbox[5];
    #$xstart = $width - $textx - 450;
    $xstart = $width /2 ;
    #$ystart = $height - $texty - 60;
    $ystart = $height / 2;
    //Sætter baggrundsfarvern på billedet
    $color = imagecolorallocate($billede, 255, 255, 0);
    //Sætter teksten ind på billedet
    imagettftext($billede, $text_size, $text_angle, $xstart, $ystart, $color, $text_font, $text);
    //Udskriver billedet til browsern
    imagejpeg($billede);
    //Destroy billedet igen
    imagedestroy($billede);
}
?>   


Nogen der kan hjælpe med det
Avatar billede riversen Nybegynder
07. juni 2004 - 10:26 #1
(billedets højde - tekstens højde) / 2 = start offset i højden

samme princip i bredden
Avatar billede krydset Nybegynder
07. juni 2004 - 10:32 #2
Så skal man jo have tekstens længde osse, eller hvordan ?
Avatar billede coderdk Praktikant
07. juni 2004 - 11:34 #3
Avatar billede coderdk Praktikant
07. juni 2004 - 11:35 #4
Ja ok, den bruger du jo selv ;)
Avatar billede riversen Nybegynder
07. juni 2004 - 12:46 #5
kryset: ja du skal
Avatar billede krydset Nybegynder
07. juni 2004 - 18:37 #6
hvordan får jeg den ??
Avatar billede riversen Nybegynder
07. juni 2004 - 18:42 #7
det har jeg ingen idé om.
Avatar billede krydset Nybegynder
07. juni 2004 - 18:58 #8
hmmmm kedeligt
Avatar billede coderdk Praktikant
07. juni 2004 - 21:28 #9
Du har textens længde og højde med imagettfbbox() -

$hoejde = $textbox[1] - $textbox[5];
$laengde = $textbox[4] - $textbox[0];

Eller noget i den stil ;)
Avatar billede riversen Nybegynder
07. juni 2004 - 21:43 #10
ja, den må kunne bruges
Avatar billede krydset Nybegynder
23. juni 2004 - 09:54 #11
Hmm kan i ikke ligge et svar ??
Avatar billede coderdk Praktikant
23. juni 2004 - 09:56 #12
Joda :)
Avatar billede krydset Nybegynder
23. juni 2004 - 10:05 #13
takker :-P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester