Image vertikal zentrieren

pl_90

Angesehenes Mitglied
Hallo,
Weiß jemand vielleicht wie man Text und Image bei PHP-Image(create) vertikal zentriert?

Danke schon mal für die Antworten im Voraus...
smile.gif
 
QUOTE (pl_90 @ Fr 27.07.2007, 18:30)[...]Weiß jemand vielleicht wie man Text und Image bei PHP-Image(create) vertikal zentriert? [...]

Nun, ein Parameter alleine wird es wohl nicht sein, da musst Du schon etwas tiefer graben.

Im Grunde muss Du nur wissen, welche Fläche du benötigst und nimmst dann den enstsprechenden Mittelwert um die Grafik oder den Text in Deine Leinwand zu positionieren.

Schau einfach mal nach den benötigten Funktionen: http://www.php.net/GD


Diese Funktion kannst Du für den Text gebrauchen, soll es längerer Text sein, muss Du selber dafür sorgen, dass er nicht die Breite sprengt. Was bei einer unproportionalen Textweite relativ kompliziert ist, letztentlich kann es hilfreich sein, die Größe der einzelnen Buchstaben mit der Funktion zu bestimmen, bevor Du den Text auf Dein Bild bringst:

array imagettfbbox ( int $size, int $angle, string $fontfile, string $text )


Oder Du schaust mal nach einen passenden Framework oder einer passenden Klasse, welche/s Dir die gewüschte Funktionalität bietet (bspw. bei pear.php.net).
 
Nein nein.. ich glaue du hast das falsch verstanden. Also der Text und/oder das Bild soll vertikal (senkrecht |) zentriert werden... Das brauch ich, weil ich unterschiedliche Schriftarten benutze und, wie du weißt, ist jede Schriftart unterschiedlich groß, breit usw.. Hast du oder jemand ne Idee?

Vielen Dank nochmal...
 
Doch, ich habe Dich schon verstehen. Siehe oben!

Entweder selber machen (eine Lösungmöglichkeit steht oben beschrieben), oder nach einer entsprechenden Klasse, bzw. einen entsprechenden Framework suchen.
 
hm... Leider ist PHP-Image nicht so mein bereich und ich find auch nicht und ich weiß nicht womit ich anfangen soll... Könntest du oder jemand mir auf die Sprünge helfen? Danke schön...
 
Beim Text im Bild schreiben gibst du in der Funktion ja immer mit wo dieser steht. Also musst du einfach berechnen wo die Mitte ist.
 
Das versuche ich ja, aber irgendwie komme ich nicht dazu... hm... $hoehe/2..?? ne.. Wie soll ich den das Berechnen?
 
QUOTE (pl_90 @ Fr 27.07.2007, 22:52)Das versuche ich ja, aber irgendwie komme ich nicht dazu... hm... $hoehe/2..?? ne.. Wie soll ich den das Berechnen?

Einfache mathematische Probleme sollte man schon lösen können, wenn man programmieren möchte...

Die Position auf der X-Achse für ein Objekt auf der Leinwand lautet die Formel vermutlich:

CODE x = leinwandbreite / 2 - bildbeite / 2;



Schritt 1: Errechnen der Leinwandmitte für die X-Achse.
Schritt 2: Errechnen der Bildmitte für die X-Achse.
Schritt 3: Position ausrechen, für den Startpunkt, welcher von der linken Bildseite ausgeht. Das heißt, die Hälfte der Bildbreite muss von der halben Leinwandbreite abgezogen werden.


Wenn ich mich richtig entsinne, wird die Positionierung so sein:

CODE |- - -5- - -|
|- 1 -|- 2 -|
+-----x-----------+-----+
|     |           |     |
|     |           |     |
|     +-----------+     |
|     |- - -4- - -|     |
|                       |
|                       |
+-----------------------+
|- - - - - -3- - - - - -|

x.) Makiert die Startpunkt um das Bild Auszurichten
1.) Zu errechende Differenz für die Startposition auf der X-Achse
2.) Halbe Bildbreite
3.) Bildbreite
4.) Leinwandbreite
5.) Halbe Leinwandbreite
 
Ich habs: (($bildhoehe/2) + ($schrifthoehe/2))

Nochmals vielen Dank für alles.
smile.gif
biggrin.gif
 
Zurück
Oben