Fahrtenbuch genial!
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 03.05.2004, 17:32   #1
TP-Member
 
Registriert seit: Jul 2002
chickendeath macht alles soweit korrekt

imagettftext() - Textbox ?


Hallo alle zusammen,

ich habe auf einem Bild Text platziert, nur soll dieser an einer bestimmten Stelle brechen und in einer neuen Zeile fortgesetzt werden. Wäre auch kein Problem, aber ich möchte später aus einer Textbox Inhalt übernehmen und den auf diesen Ausschnitt des Bildes projezieren. Nun muss das Script ja so sein, dass es irgendwo einen Zeilenumbruch macht wenn der "Schreibbereich" horizontal zuende ist, sonst würde der Text ja endlos nach rechts weiterlaufen. Leider weiß ich nicht wie der Befehel dafür ist. Mein bisheriger Code sieht so aus:

PHP-Code:
<?
header 
("Content-type: image/PNG");
$im ImageCreateFromJPEG("images/tafel.jpg");
$weiss ImageColorAllocate($im255255255); 
$schwarz ImageColorAllocate ($im000); 

ImageTTFText($im2002040$weiss"Hilde.ttf""Hier ist ein wenig Text...");

Header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);
?>
Für Hilfe wäre ich sehr dankbar.

MfG chickendeath
chickendeath ist offline   Mit Zitat antworten


Alt 03.05.2004, 19:17   #2
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Helfen will ich dir mit Theorie, da Grafikanwendungen nun mal mit viel Mathe und Logik erstellt werden:
- Breite einer Schrift muss herausgefunden werden imagefontwidth()
- Breite des Bildes muss herausgefunden werden getimagesize()
Das sind die zwei Werte, die du brauchst, weiter denken tust du aber selbst.
Strogij ist offline   Mit Zitat antworten
Alt 04.05.2004, 18:44   #3
TP-Member
 
Registriert seit: Jul 2002
chickendeath macht alles soweit korrekt
Das, woran ich jetzt denke, steht aber nicht im direkten Zusammenhang mit dem Problem. Jedenfalls denke ich das.

Man muss sich es ja so vorstellen:

Großes Bild (Hintergrund auf dem geschrieben werden soll) --> Dynamischer Text wird in eine bestimmte Stelle dieses Bildes projeziert und soll automatisch brechen, falls das "Textfeld", wie ich es mal nennen möchte, dies angibt weil die Breite in dieser Zeile nicht ausreicht.

Möchtest du mir evtl. noch ein wenig auf die Sprünge helfen ?

MfG chickendeath
chickendeath ist offline   Mit Zitat antworten
Alt 04.05.2004, 19:03   #4
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Doch ich habe dich schon richtig verstanden, aber du mich wohl nicht... Auf jeden Fall habe ich hier etwas für dich gefunden (unter Kommentaren) - die fertige Funktion imagestringbox(), die so funktioniert wie ich es dir zu erklären versucht habe.

Geändert von Strogij (04.05.2004 um 19:08 Uhr).
Strogij ist offline   Mit Zitat antworten
Alt 04.05.2004, 19:55   #5
TP-Member
 
Registriert seit: Jul 2002
chickendeath macht alles soweit korrekt
Okay, bis hierhin möchte ich dir erstmal danken.
Ich denke nicht, beim besten Willen, dass ich so ein Script hätte selber schreiben können bezüglich dieses Zwecks.

Ich habe es auch schon ein wenig einbauene können. Aber wie sieht es aus - könnte man den TTF-Font noch irgendwie einstellen?

Der bisherige Code sieht ja so aus:

PHP-Code:
<?php

   
// ### CODE ###
   
define("ALIGN_LEFT"0);
   
define("ALIGN_CENTER"0);
   
define("ALIGN_RIGHT"0);
   
define("VALIGN_TOP"0);
   
define("VALIGN_MIDDLE"0);
   
define("VALIGN_BOTTOM"0);

   function 
imagestringbox(&$image$font$left$top$right$bottom$align$valign$leading$text$color) {
       
// Get size of box
       
$height $bottom $top;
       
$width $right $left;
       
       
// Break the text into lines, and into an array
       
$lines wordwrap($textfloor($width imagefontwidth($font)), "\n"true);
       
$lines explode("\n"$lines);
       
       
// Other important numbers
       
$line_height imagefontheight($font) + $leading;
       
$line_count floor($height $line_height);
       
$line_count = ($line_count count($lines)) ? (count($lines)) : ($line_count); 
       
       
// Loop through lines
       
for ($i 0$i $line_count$i++) {
           
// Vertical Align
           
switch ($valign) {
               case 
VALIGN_TOP// Top
                   
$y $top + ($i $line_height);
                   break;
               case 
VALIGN_MIDDLE// Middle
                   
$y $top + (($height - ($line_count $line_height)) / 2) + ($i $line_height);
                   break;
               case 
VALIGN_BOTTOM// Bottom
                   
$y = ($top $height) - ($line_count $line_height) + ($i $line_height);
                   break;
               default:
                   return 
false;
           }
           
           
// Horizontal Align
           
$line_width strlen($lines[$i]) * imagefontwidth($font);
           switch (
$align) {
               case 
ALIGN_LEFT// Left
                   
$x $left;
                   break;
               case 
ALIGN_CENTER// Center
                   
$x $left + (($width $line_width) / 2);
                   break;
               case 
ALIGN_RIGHT// Right
                   
$x $left + ($width $line_width);
                   break;
               default:
                   return 
false;
           }
           
           
// Draw
           
imagestring($image$font$x$y$lines[$i], $color);
       }
       
       return 
$image;
   }
   
   
// ### EXAMPLE ###
   
   
$test_string "Hier ist ein kleiner Beispieltext, der einfach nur so geschrieben ist und eigentlich in dem Sinne gar keinen Sinn hat... :)"// Example text
   
$im imagecreate(400400); // Create image
   
   // Colors
   
$white imagecolorallocate($im255255255);
   
$black imagecolorallocate($im000);
   
$grey imagecolorallocate($im200200200);
   
   
// Grid so you can see
   
imagerectangle($im106206300$grey);
   
imagerectangle($im106206153$grey);
   
imagerectangle($im106108300$grey);
   
   
// Use it!
   
imagestringbox($im3106206300ALIGN_RIGHTVALIGN_BOTTOM2$test_string$black);
   
   
// Output
   
header("Content-type: image/png");
   
imagepng($im);
   
?>
Falls du mir noch einmal erneut auf die Sprünge helfen könntest, wäre ich dir wirklich undendlich dankbar !

MfG chickendeath

Geändert von chickendeath (04.05.2004 um 19:59 Uhr).
chickendeath ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
imagettftext() - Textbox ? imagettftext() - Textbox ?
« Problem mit Ausgabe von Sprungmenüs | Diskussion an Newsbeiträge anhängen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:16 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67