schlegel.berlin
New member
Hallo Leute,
hab gerade wieder mal eine kleine Denksportaufgabe, an deren Lösung ich irgendwie hänge...
Vor einiger Zeit habe ich mir ein vorhandenes Script für eigene Zwecke modifiziert, das, wenn ihr es euch anschaut, so hoffe ich, selbst erklärt.
Jetzt stehe ich vor der Aufgabe, einen zentrierten Text in einem bestimmtenm Winkel auf einem Hintergrund zu erzeugen, der allerdings transparent sein muss.
Hab schon einiges "ergoogelt" und auch probiert, hänge aber einfach fest. Irgendwie ist mein Hirn vernagelt (liegt vielleicht an meinen grippalen Infekt)...
Ich poste mal mein urspüngliches (kommentiertes) Script. Es wäre nett, wenn Ihr mir gründlich auf die Sprünge helfen würdet
Vielen Dank schon mal im Voraus und liebe Grüße, Karin
hab gerade wieder mal eine kleine Denksportaufgabe, an deren Lösung ich irgendwie hänge...
Vor einiger Zeit habe ich mir ein vorhandenes Script für eigene Zwecke modifiziert, das, wenn ihr es euch anschaut, so hoffe ich, selbst erklärt.
Jetzt stehe ich vor der Aufgabe, einen zentrierten Text in einem bestimmtenm Winkel auf einem Hintergrund zu erzeugen, der allerdings transparent sein muss.
Hab schon einiges "ergoogelt" und auch probiert, hänge aber einfach fest. Irgendwie ist mein Hirn vernagelt (liegt vielleicht an meinen grippalen Infekt)...
Ich poste mal mein urspüngliches (kommentiertes) Script. Es wäre nett, wenn Ihr mir gründlich auf die Sprünge helfen würdet
Vielen Dank schon mal im Voraus und liebe Grüße, Karin
PHP:
// Variablen (Text, Hintergrundbildfarbe, Hintergrundbildgröße, Textfarbe, Textgröße, Textwinkel)
$font = "BRUSHSCI.TTF";
$text_farbe = "202020";
$bild_farbe = "D5CDBB";//Hintergrund
$bild_hoehe = 45;// in Pixel
$bild_breite = 700;// in Pixel
$text = "Hier steht ein Text ...";
$size = 28;
$angle = 0;
// Bild erzeugen - Farbe und Größe (DIESES BILD MUSS NUN TRANSPARENT SEIN)
$image = imagecreatetruecolor($bild_breite, $bild_hoehe);
imagefill($image, 0, 0, hexdec($bild_farbe));
// Ein Kreuz als Hilfslinien zur leichteren Orientierung auf dem Bild erzeugen,
// falls die Schift nicht exakt horizontal oder vertikal sein soll,
// in schwarz, siehe hexwerte
//imageline($image, 0, 0, imagesx($image), imagesy($image), hexdec("000000"));
//imageline($image, imagesx($image), 0, 0, imagesy($image), hexdec("000000"));
$bbox = imagettfbbox_fixed($size, $angle, $font, $text);
// Text erzeugen und zentrieren
// imagettftext() Bezugspunkt ist links unten
imagettftext($image, $size, $angle, imagesx($image) / 2 - $bbox['width'] / 2, imagesy($image) / 2 + $bbox['height'] / 2, hexdec($text_farbe), $font, $text);
// Bild ausgeben
imagepng($image);
function imagettfbbox_fixed($size, $angle, $font, $text)
{
// Bildgröße der Textbox
$bbox = imagettfbbox($size, 0, $font, $text);
// Textbox drehen
$angle = pi() * 2 - $angle * pi() * 2 / 360;
for ($i=0; $i<4; $i++)
{
$x = $bbox[$i * 2];
$y = $bbox[$i * 2 + 1];
$bbox[$i * 2] = cos($angle) * $x - sin($angle) * $y;
$bbox[$i * 2 + 1] = sin($angle) * $x + cos($angle) * $y;
}
// Textbox
$bbox['width'] = $bbox[0] + $bbox[4];
$bbox['height'] = $bbox[1] - $bbox[5];
return $bbox;
}
Zuletzt bearbeitet: