Seite 1 von 1

ImageCreate Text einfügen in der Mitte des Bildes

Verfasst: 02.10.2007 18:27
von habbi
Hallo,
ich ermittle durch eine GET variable den namen
z.b datei.php?name=argaergar

wenn ich
ImageTTFText($bg, $font_g, 0, 10, 140, $weiss, $font, $text3);
verwende, erscheint der text bie den angegebenen koordinaten

wenn jedoch ein benutzer einen kürzernen namen hat, so ist der namen nicht mehr in der mitte

gibt es hier eine lösung wie ich das problem umgehen kann?
(ahja: ich meine die mitte --> abstand links und rechts)

Verfasst: 03.10.2007 13:07
von habbi
push

Verfasst: 03.10.2007 15:39
von punkface
Google: +ImageTTFText +text +mittig -> 1. Ergebnis: http://www.tutorials.de/forum/php/19392 ... ftext.html, der Beitrag von Sven Petruschke sollte weiterhelfen

Verfasst: 03.10.2007 16:30
von habbi
hallo,
danke für deine antwort, jedoch variert die grösse des textes..
kann man die grösse des textes mit php "messen"?

Verfasst: 03.10.2007 18:28
von Pyramide
RTM: [php:imagefontwidth]

Verfasst: 04.10.2007 10:56
von habbi
das verstehe ich irgendwie nicht..

Code: Alles auswählen

$breitetext = "70";
$x = (129 - $breitetext) / 2;
habe ich im moment im einsatz
(die 70 ist natürlich nur ein ersatzwert, 129 habe ich manuell als bildbreite eingegeben, dass alles nicht noch umständlicher wird und die bildbreite sich eh nicht verändert)

dashier wird glaub benötigt:
$font_g = 13; //Meine Fontgrösse
$font = "Volter-Bold (Goldfish).ttf"; //Meine Schriftart
$text3 = $_GET['namen']; //unterschiedlich langer namen

aber wie mache ich das mit dem

Code: Alles auswählen

int imagefontwidth ( int $font )
?

Verfasst: 04.10.2007 11:47
von StarWolf3000

Code: Alles auswählen

<?php
//
// Schrift immer zentriert darstellen
//
$breite = 200;
$hoehe = 100;
$grafik = imagecreate($breite, $hoehe); // Grafik mit Abmessungen 200x100 Pixel erstellen
$schrift_groesse = 24; // Schriftgroesse 24 beispielsweise
$farbe = imagecolorallocate($grafik, 255, 0, 0); // Schriftfarbe rot

// Schrift-Box ermitteln
$box = imagettfbbox($schriftgroesse, 0, "./verdana.ttf", "Text");
$box_width = abs($box[4] - $box[0]);
$box_height = abs($box[5] - $box[1]);
$x = $breite/2-($box_width/2)-2;
$y = $breite/2+$box_height/2;
imagettftext($grafik, $schrift_groesse, 0, $x, $y, $farbe, "./verdana.ttf", "Text");
header ("Content-type: image/png");
imagepng($grafik);
imagedestroy($grafik);
?>
statt verdana.ttf kann auch eine andere Schriftartdatei angegeben werden, sie muss nur mit hochgeladen werden

Verfasst: 04.10.2007 12:53
von habbi
genau das wars!
vielen dank!!