ImageCreate Text einfügen in der Mitte des Bildes

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
habbi
Mitglied
Beiträge: 548
Registriert: 04.05.2005 16:20
Wohnort: Schweiz
Kontaktdaten:

ImageCreate Text einfügen in der Mitte des Bildes

Beitrag 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)
Benutzeravatar
habbi
Mitglied
Beiträge: 548
Registriert: 04.05.2005 16:20
Wohnort: Schweiz
Kontaktdaten:

Beitrag von habbi »

push
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Google: +ImageTTFText +text +mittig -> 1. Ergebnis: http://www.tutorials.de/forum/php/19392 ... ftext.html, der Beitrag von Sven Petruschke sollte weiterhelfen
Benutzeravatar
habbi
Mitglied
Beiträge: 548
Registriert: 04.05.2005 16:20
Wohnort: Schweiz
Kontaktdaten:

Beitrag 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"?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

RTM: [php:imagefontwidth]
KB:knigge
Benutzeravatar
habbi
Mitglied
Beiträge: 548
Registriert: 04.05.2005 16:20
Wohnort: Schweiz
Kontaktdaten:

Beitrag 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 )
?
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag 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
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
habbi
Mitglied
Beiträge: 548
Registriert: 04.05.2005 16:20
Wohnort: Schweiz
Kontaktdaten:

Beitrag von habbi »

genau das wars!
vielen dank!!
Antworten

Zurück zu „Coding & Technik“