Transparenter Text

obaran

Erfahrenes Mitglied
Hallo,
ich möchte einen Text über ein Bild legen, dieser soll leicht transparent sein.
Aber das Bild ansich soll auch transparant sein, hat da jemand von euch eine
Idee?
Hier ist mein momentaner Code:
PHP:
$txt = "Text";
$font_size = 300;
$pic = "bild.gif"; // ist im Hintergrund transparent
$size = getimagesize($pic);

$d = sqrt(pow($size[0], 2) + pow($size[1], 2));

$angle = 90-rad2deg(atan($size[0] / $size[1]));

$font = "/arialn.ttf";
do{
	$font_size--;
	$r = imagettfbbox($font_size, $angel, $font, $txt);
	if($font_size < 1) die("abbbruch");
	$dt = sqrt(pow(($r[2]-$r[6]), 2)+pow(($r[3]-$r[7]), 2)); //Diagonale des Textes
}while($dt > $d);
$font_size *= 0.9; // Die Schriftgröße etwas kleiner machen.

$y = $size[1];

$x = $font_size/2;

$img = imagecreatefromgif($pic);

$image = imagecreatetruecolor($size[0], $size[1]);

$back = imagecolorallocate($image, 255, 255, 255);

imagefilledrectangle($image, 0, 0, $size[0] - 1, $size[1] - 1, $back);

$blue  = imagecolorallocatealpha($image, 48, 40, 254, 100);

imagecopyresized($image, $img, 0,0, 0,0, $size[0],$size[1], $size[0],$size[1]); // Das alte Bild unter das neue legen.

ImageTTFText ($image, $font_size, $angle, $x, $y, $blue, $font, $txt);


Header ("Content-type: image/png");
ImagePng ($image);
ImageDestroy ($image);
Grüße Oliver
 
Keine Ahnung wie das funktioniert, aber wieso machst du das nicht mit Photoshop? Also mit Photoshop (oder so einem Programm) einfach ein transparentes Bild machen?!
 
Also ich denke, schonmal alleine das ist falsch:
PHP:
Header ("Content-type: image/png");
Da soweit ich weiss, nur .gif Transparente Grafiken ermöglicht und .png diese Eigenschaft nicht hat.
 
Original geschrieben von Lars Michelsen
Also ich denke, schonmal alleine das ist falsch:
PHP:
Header ("Content-type: image/png");

Da soweit ich weiss, nur .gif Transparente Grafiken ermöglicht und .png diese Eigenschaft nicht hat.

Ich glaub, da kann ich dir einen Gegenbeweis liefern:
http://www.id.unizh.ch/publications/zinfo/zinfo0009/kopftrans.png

kopftrans.png
 
Da der gif source nicht mehr opensource ist, wurden die gif funktionen aus der GD lib genommen.

Mein $back macht das ganze weiss, lasse ich es aber wech, dann ist der hintergrund schwarz und nicht transparent.

Oliver
 
Zuletzt bearbeitet:
Original geschrieben von obaran
Da der gif source nicht mehr opensource ist, wurden die gif funktionen aus der GD lib genommen.
Käse. Unisys hat sich nur die Patentrechte am LZW-Algorithmus gesichert, der beim GIF-Format zum Einsatz kommt. Deswegen wurde die Unterstützung aus der gdlib entfernt.

Zum Thema: imagecopymerge ist dein Freund. Ausgangsbild in eine Imageresource speichern, den Text auf eine zweite Imageresource rendern und dann zusammenführen. Der letzte Parameter von imagecopymerge ist der Anteil des zu kopierenden Bildes am Gesamtbild.
 
Zurück