Signatur
Beschreibung
imagecharup() zeichnet das erste Zeichen des übergebenen Strings $char vertikal ausgerichtet (d. h. um 90° gegen den Uhrzeigersinn gedreht) an die angegebene Position ($x, $y) in der angegebenen Farbe auf das Bild. Die Koordinaten beziehen sich dabei auf die obere linke Ecke des Zeichens.
Die Funktion verwendet einen der eingebauten GD-Schriftarten (1–5) oder eine zuvor mit imageloadfont() geladene benutzerdefinierte Bitmap-Schrift. Für skalierbare Schriften (TrueType/FreeType) empfehlen sich stattdessen imagettftext() oder imagefttext() in Kombination mit einem entsprechenden Winkelparameter.
Typische Anwendungsfälle sind einfache Beschriftungen von Achsen in Diagrammen, Wasserzeichen oder Bildbeschriftungen, bei denen vertikaler Text ohne externe Schrift-Bibliotheken benötigt wird.
Ab PHP 8.0 wird der Parameter $font als GdFont|int akzeptiert; zuvor war ausschließlich ein Integer erlaubt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Das GD-Bildobjekt, auf das gezeichnet wird. Wird typischerweise von imagecreate() oder imagecreatetruecolor() zurückgegeben. |
|
| $font Pflicht | GdFont|int | Eingebaute Schriftgröße als Integer von 1 (kleinst) bis 5 (größt) oder ein GdFont-Objekt, das mit imageloadfont() geladen wurde. |
|
| $x Pflicht | int | Die x-Koordinate (in Pixeln) der oberen linken Ecke des Zeichens auf dem Bild. | |
| $y Pflicht | int | Die y-Koordinate (in Pixeln) der oberen linken Ecke des Zeichens auf dem Bild. | |
| $char Pflicht | string | Das zu zeichnende Zeichen. Es wird stets nur das erste Zeichen des Strings verwendet; weitere Zeichen werden ignoriert. | |
| $color Pflicht | int | Die Farbe des Zeichens als Farb-Identifier, der zuvor mit imagecolorallocate() erzeugt wurde. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Bildobjekt).Beispiele
Vertikales Zeichen auf ein einfaches Bild zeichnen
<?php
// Bild erstellen
$image = imagecreate(60, 100);
// Hintergrundfarbe (wird automatisch als Hintergrund gesetzt)
$white = imagecolorallocate($image, 255, 255, 255);
// Zeichenfarbe
$black = imagecolorallocate($image, 0, 0, 0);
// Buchstabe 'A' vertikal an Position (10, 80) mit Schriftgröße 5 zeichnen
imagecharup($image, 5, 10, 80, 'A', $black);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Vertikale Achsenbeschriftung in einem einfachen Diagramm
<?php
$image = imagecreatetruecolor(200, 200);
$bg = imagecolorallocate($image, 255, 255, 255);
$axis = imagecolorallocate($image, 0, 0, 0);
$label = imagecolorallocate($image, 200, 0, 0);
// Hintergrund füllen
imagefilledrectangle($image, 0, 0, 199, 199, $bg);
// Y-Achse zeichnen
imageline($image, 30, 10, 30, 180, $axis);
// X-Achse zeichnen
imageline($image, 30, 180, 190, 180, $axis);
// Achsenbeschriftung "Y" vertikal links an der Y-Achse
$letters = ['Y', '-', 'A', 'c', 'h', 's', 'e'];
$yPos = 170;
foreach ($letters as $char) {
imagecharup($image, 3, 5, $yPos, $char, $label);
$yPos -= 14; // nächstes Zeichen weiter oben
}
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Nur ein Zeichen: imagecharup() zeichnet ausschließlich das erste Zeichen des übergebenen Strings. Um mehrere Zeichen vertikal zu zeichnen, muss die Funktion in einer Schleife aufgerufen werden (siehe Beispiel 2).
Eingeschränkte Schriftarten: Die eingebauten Schriften (1–5) sind einfache Bitmap-Fonts und bieten keine Skalierbarkeit. Für hochwertige oder skalierbare vertikale Texte sollte imagettftext() mit einem negativen Winkelwert (z. B. 90) in Betracht gezogen werden.
Zeichenkodierung: Die Funktion unterstützt nur einzelne Bytes; Multibyte-Zeichen (UTF-8) werden nicht korrekt dargestellt.