GDlib Text zentrieren mit anderer Font

russe111

Mitglied
Also Leute Hallo estmal.
Ich habe da ne Frage an euch und zwar will ich wissen
wie man die Font vom Text ändert ohne das die Zentrierung
verloren geht.
Im klartext: ich Will denn Text mit einer anderen Font und Zentriert.
Die Zentrierung habe ich schon.
Aber das mit der Font krieg ich net hin.

Hier ist mein Code:
Code:
<?php
    $image_file='bg.png';
    $im=imagecreatefrompng($image_file);
    $txt = 'www.Brigada-Rus.de';
    $BB = 400; // Breite
    $HH = 400; // Höhe

    // Farbwerte festlegen
    $WHITE = ImageColorAllocate($im, 255, 255, 255); 
    $BLUE = ImageColorAllocate($im, 0, 0, 255); 
	$BLACK = ImageColorAllocate($im, 0, 0, 0);
	$GREEN = ImageColorAllocate($im, 0, 255, 0); 

    // Hintergrund mit Farbe füllen, sonst schwarzes Bild
    ImageFill($im, 0, 0, $WHITE);

    $font_size = 100;
    $text_width = imagefontwidth($font_size);
    $height = imagefontheight($font_size);

    $width = $text_width * strlen($txt);
	
    // zentriert
    $x = ($BB/2) - ($width/2);
    ImageString ($im, $font_size, $x, 192, $txt, $BLACK );

    // Bild fertigstellen und speichern
    ImagePNG($im);

    // Speicher frei machen
    ImageDestroy($im);

echo '<img src="bild.png" border="1">';
?>
 
Hast du schon mal [phpf]imagettftext[/phpf] ausprobiert?

Arbeitet genau wie [phpf]imagestring[/phpf] besitzt aber einen zusätzlichen Parameter für fontfile.
 
Hab das mal Probier da kommt sowas raus:
Warning: Wrong parameter count for imagettftext() in C:\Inetpub\wwwroot\kp.php on line 26
‰PNG  IHDRÝ¡› IDATxœì½i˜

Der Code sieht jetzt so aus
Code:
<?php
    $image_file='bg.png';
    $im=imagecreatefrompng($image_file);
    $txt = 'www.Brigada-Rus.de';
	$font = 'impactf';
    $BB = 400; // Breite
    $HH = 400; // Höhe

    // Farbwerte festlegen
    $WHITE = ImageColorAllocate($im, 255, 255, 255); 
    $BLUE = ImageColorAllocate($im, 0, 0, 255); 
	$BLACK = ImageColorAllocate($im, 0, 0, 0);
	$GREEN = ImageColorAllocate($im, 0, 255, 0); 

    // Hintergrund mit Farbe füllen, sonst schwarzes Bild
    ImageFill($im, 0, 0, $WHITE);

    $font_size = 100;
    $text_width = imagefontwidth($font_size);
    $height = imagefontheight($font_size);

    $width = $text_width * strlen($txt);
	
    // zentriert
    $x = ($BB/2) - ($width/2);
	imagettftext ($im, $font_size, $x, 192, $txt, $font, $BLACK);

    // Bild fertigstellen und speichern
    ImagePNG($im);

    // Speicher frei machen
    ImageDestroy($im);

echo '<img src="bild.png" border="1">';
?>
 
Hab das mal Probier da kommt sowas raus:
Warning: Wrong parameter count for imagettftext() in C:\Inetpub\wwwroot\kp.php on line 26
‰PNG  IHDRÝ¡› IDATxœì½i˜

Der Code sieht jetzt so aus
Code:
<?php
    $image_file='bg.png';
    $im=imagecreatefrompng($image_file);
    $txt = 'www.Brigada-Rus.de';
	$font = 'impactf';
    $BB = 400; // Breite
    $HH = 400; // Höhe

    // Farbwerte festlegen
    $WHITE = ImageColorAllocate($im, 255, 255, 255); 
    $BLUE = ImageColorAllocate($im, 0, 0, 255); 
	$BLACK = ImageColorAllocate($im, 0, 0, 0);
	$GREEN = ImageColorAllocate($im, 0, 255, 0); 

    // Hintergrund mit Farbe füllen, sonst schwarzes Bild
    ImageFill($im, 0, 0, $WHITE);

    $font_size = 100;
    $text_width = imagefontwidth($font_size);
    $height = imagefontheight($font_size);

    $width = $text_width * strlen($txt);
	
    // zentriert
    $x = ($BB/2) - ($width/2);
	imagettftext ($im, $font_size, $x, 192, $txt, $font, $BLACK);

    // Bild fertigstellen und speichern
    ImagePNG($im);

    // Speicher frei machen
    ImageDestroy($im);

echo '<img src="bild.png" border="1">';
?>

Hier der Link: http://brigada-rus.mine.nu/kp.php
 
In der ersten Zeile sagt er dir doch den Fehler?

Warning: Wrong parameter count for imagettftext() in C:\Inetpub\wwwroot\kp.php on line 26

Du hast zuwenig Parameter an die Funktion übergeben.

imagettftext ( resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text )

Das sind 8 Parameter, du übergibst aber nur 7.
 
Habe es jetzt hinbekommen aber der berechnet mir das falsche.
Ich will das er mir die Y achse berechnet.
LINK: http://brigada-rus.mine.nu/kp.php
Code:
<?php
    $image_file='bg.png';
    $im=imagecreatefrompng($image_file);
    $txt = 'Iwan';
    $BB = 400; // Breite
    $HH = 400; // Höhe

    // Farbwerte festlegen
    $WHITE = ImageColorAllocate($im, 255, 255, 255); 
    $BLUE = ImageColorAllocate($im, 0, 0, 255); 
	$BLACK = ImageColorAllocate($im, 0, 0, 0);
	$GREEN = ImageColorAllocate($im, 0, 255, 0); 

    // Hintergrund mit Farbe füllen, sonst schwarzes Bild
    ImageFill($im, 0, 0, $WHITE);

    $font_size = 40;
    $text_width = imagefontwidth($font_size);
    $height = imagefontheight($font_size);

    $width = $text_width * strlen($txt);
	
    // zentriert
    $x = ($BB/2) - ($width/2);
    ImageTTFText ($im, $font_size, 0, 152, $x, $color, "IMPACTf", "$txt");  

    // Bild fertigstellen und speichern
    ImageGIF($im);

    // Speicher frei machen
    ImageDestroy($im);

echo '<img src="bild.png" border="1">';
?>
 
OK ich habe es jetzt hinbekommen!
Hier ist der Code für euche falls ihr das Problem auch habt:
Code:
<?php
$insert = imagecreatefrompng("bild.png");
$HH = 400; // Höhe
$BB = 400; // Breite
$text="TEXT";
$font="arialf";
$font_size = 40;

//choose textcolor (black)
$color=ImageColorAllocate ($insert, 0, 0, 0);

//check width of the text
$bbox=imagettfbbox ($font_size, 0, $font, $text);
$xcorr=0-$bbox[6];
$mase=$bbox[2]+$xcorr;

//check width of the image
$width=imagesx($insert);

//calculate x coordinates for text
$x=($width-$mase)/2;

//write text
$height = imagefontheight($font_size);
$text_height = ($height/2) + (10);
$y = ($HH/2) + ($text_height);
imagettftext ($insert, $font_size, 0, $x, $y, $color, $font, $text);

//output picture
imagegif($insert,"",100); 

?>
 
Zurück