Wortlänge in Pixel umrechnen

NetPerformance

Erfahrenes Mitglied
Hallo

Vorgeschichte:
Da ich die Fontgröße nicht ohne Weiteres in Pixel umrechnen kann, versuche ich ein Satz zunächst in einzelne Wörter zu zerlegen und diese in Grafiken umzuwandeln.
Sobald die Grafik erstellt wurde, kann ich die Länge Pixelgenau bestimmen.

Problem:
Der Screenshot soll das Problem verdeutlichen. Die Methode ImageCreate(150, 30) erstellt immer gleich große Grafiken. Das Word Access: ist kleiner als 150 pixel. Andere Wörter sind größer als 150 Pixel. Mit der Methode strlen($array[$i]) kann ich die Anzahl der Buchstaben eines Wortes bestimmen. Für Access: erhalte ich somit den Wert 7.
Um die Länge der Hintergrundgrafik anzupassen, muss ich irgendwie die breite der Hintergrundgrafik bestimmen.. ?!

Ich hoffe, mein Problem ist verdeutlicht worden :/

Ich drehe mich irgendwie im Kreis !
Gruß
Aaron

Code:
<?php

$text = "Open Access: EU-Konsultation zum wissenschaftlichen Publikationswesen";
$boxwidth = 230; // pixel

splitText($boxweight, $text);

function splitText($boxwidth, $text) {
	
	$array = explode(" ", $text);
	$j = 0;	
	
  	for ($i=0; $i<sizeof($array); $i++) {
		// $bgLength = strlen($array[$i]) * ;
		// toImage($array[$i], $i, $bgLength);
		toImage($array[$i], $i);
	}
}

// function toImage($text, $name, $backgroundLength) {
function toImage($text, $name) {
	
	header("Content-type: image/gif");

	$text = $text;
	
	$count = strlen($text);
	
	// statt 150 wird $backgroundLength eingetragen
	$picture =@ImageCreate (150, 30) 
		or die ("Kann keinen neuen GD-picture-Stream erzeugen");
		
	$hintergrund  =  imagecolorallocate($picture,10,255,255);
	$farbeSchwarz =  imagecolorallocate($picture,0,0,0);

	ImageString($picture, 5, 0, 0, $text, $farbeSchwarz); 

	$tmp = "./".$name.".png";
	
	imagepng($picture, $tmp);
	imagedestroy($picture);
}

?>
 
Zuletzt bearbeitet:
Zurück