[PHP] ImageTTFText

traffic

Well-known member
5 Mai 2006
675
25
Hallo,

ich möchte über vorhandene Bilder, die immer auf einer Seite ausgegeben werden, ein Copyright überschreiben.
Nun habe ich das Problem, dass die Bilder immer verschieden Groß sind.

Wie mache ich das am besten?

Mein Code
PHP:
$im = imagecreatefromgif ($file);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 12, 0, 50, 100, $white, "schrift2.ttf",$text);
ImageGif ($im);
ImageDestroy ($im);
 
Wenn dein Copyright-Text immer der gleiche ist, könntest du Breite und Höhe dieses Textes in Pixeln ausmessen - wie man das dynamisch einigermaßen elegant machen könnte weiß ich leider nicht :-/
Jeden Buchstaben auszumessen halte ich für übertrieben ;)

Angenommen aber, dein Copyright-Text ist immer der gleiche, würde ich es so lösen:

PHP:
$copyright['width'] = 100;
$copyright['height'] = 30;
$imageformat = getimagesize($file);
ImageTTFText ($im, 12, 0, ($imageformat[0] - $copyright['width'] - 20), ($imageformat[0] - $copyright['height'] - 20), $white, "schrift2.ttf",$text);
Das würde dein Copyright rechts unten mit einem Abstand von 20 Pixeln von der rechten und unteren Seite einbinden. Könnten kleinere Stil- oder PHP-Fehler drin sein, hab heut verdammt viel zutun gehabt :yawn:

Willst dus links unten haben, musst du im Prinzip nur die X-Koordinaten auf 20 setzen.
 
Danke so gehts....
Hab aber auch ab und zu .jpg Bilder dabei. Gibt es auch eine Funktion die .gif und .jpg erlaubt.
Denn z.Z. kommen bei .jpg-Dateien ein Fehler.

PHP:
Header ("Content-type: image/gif");


$text = "textssss";

$file = "Artikelbilder/".$row[bild];

$copyright['width'] = 110;
$copyright['height'] = 30;
$imageformat = getimagesize($file);
$width= ($imageformat[0] - $copyright['width'] - 20);
$height = ($imageformat[1] - $copyright['height'] - 0);

$im = imagecreatefromgif ($file);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 12, 0, $width, $height, $white, "schrift2.ttf",$text);
ImageGif ($im);
ImageDestroy ($im);
 
imagettfbbox

(PHP 3 >= 3.0.1, PHP 4, PHP 5)
imagettfbbox -- Give the bounding box of a text using TrueType fonts
Description
array imagettfbbox ( float size, float angle, string fontfile, string text )

Könnte für solche Fälle hilfreich sein.

Hab aber auch ab und zu .jpg Bilder dabei. Gibt es auch eine Funktion die .gif und .jpg erlaubt.

Fragen enden in der deutschen Sprache übrigens meistens mit einem Fragezeichen! :p ;)

imagecreatefromgif
imagecreatefromjpeg
imagecreatefrompng​