Start · Sprachen · PHP · Referenz · imagecharup

imagecharup

Funktion

Zeichnet ein einzelnes Zeichen vertikal (um 90° gedreht) auf ein GD-Bild.

seit PHP 5.0.0 Kategorie: image

Signatur

imagecharup(GdImage $image, GdFont|int $font, int $x, int $y, string $char, int $color): bool

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

Typ
bool
Beschreibung
Gibt 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.