Text im Bild Mittig darstellen (GDLIB)

Frank73

Mitglied
Hallo zusammen,

mit den folgenden Code versuche ich, mehrere Textzeilen in der Schriftart berlin.ttf Horizontal und Vertikal zentriert darzustellen. Leider scheint es ein Problem zu geben auf dessen Lösung ich bisher noch nicht gekommen bin. Kann da jemand helfen********?

<?php
function ImageStringCenter($image_resource, $font_size, $line_number, $total_lines, $text, $color,$font) {

$center_x = ceil( ( imagesx($image_resource) - ( ImageFontWidth($font_size) * strlen($text) ) ) / 2 );

$center_y = ceil( ( ( imagesy($image_resource) - ( ImageFontHeight($font_size) * $total_lines ) ) / 2) + ( ($line_number-1) * ImageFontHeight($font_size) ) );

//ImageString($image_resource, $font_size, $center_x, $center_y, $text, $color);
imagettftext ($image_resource, $font_size, $center_x, $center_y, 20, $color, $font, $text );
}

header ("Content-type: image/png");
$img = ImageCreate (200, 100);
$font = "/pfad zur ttf/berlin.ttf";
$white = imagecolorallocate ($img,0,0,0);
$black = imagecolorallocate ($img,255,255,255);
imagefilledrectangle ($img,0,0,0,100,$black);
imagefilledrectangle ($img,100,100,0,200,$black);
ImageStringCenter($img,12,1,4,"Test1",$black,$font);
ImageStringCenter($img,14,2,4,"Test2",$black,$font);
ImageStringCenter($img,20,3,4,"Test3",$black,$font);
ImageStringCenter($img,6,4,4,"Test4",$black,$font);
imagepng ($img);
?>

LG

Frank
 
Die erstere Frage hat sich nach langen probieren erledigt. Die Schrift wird in dem Bild dargestellt. Nun gibt es aber noch ein Problem. Wie schaffe ich es, die Zeilenabstände abhängig von der Textgröße darzustellen. Je nach Textgröße werden die Schriften teilweise überlagert. Kennt jemand eine Antwort für das Problem?

Hier der Quelltext:

<?php
function ImageStringCenter($image_resource, $font_size, $line_number, $total_lines, $text, $color, $font) {

$center_y = ceil( ( ( imagesy($image_resource) - ( ImageFontHeight($font_size) * $total_lines ) ) / 2) + ( ($line_number-1) * ImageFontHeight($font_size) ) );

imagettftext ($image_resource, $font_size, 0, $center_x, $center_y, $color, $font, $text );
}


header ("Content-type: image/png");
$img = ImageCreate (200, 200);
$font1 = "berlin.ttf";
$font2 = "arial.ttf";
$white = imagecolorallocate ($img,0,0,0);
$black = imagecolorallocate ($img,255,255,255);

ImageStringCenter($img,10,1,4,"Zeile 1",$black,$font1); // Textzeile 1
ImageStringCenter($img,20,2,4,"Zeile 2",$black,$font1); // Textzeile 2
ImageStringCenter($img,15,3,4,"Zeile 3",$black,$font1); // Textzeile 3
ImageStringCenter($img,18,4,4,"Zeile 4",$black,$font1); // Textzeile 4

imagepng ($img);
?>
 
Zurück