Signatur
Beschreibung
UI\Draw\Text\Font\Descriptor ist eine Klasse der UI-Erweiterung (php-ui / libui), die eine Schriftartbeschreibung kapselt. Sie definiert alle wesentlichen typografischen Eigenschaften einer Schrift: Familie, Größe, Gewicht (Weight), Stil (Italic/Oblique) sowie Dehnung (Stretch).
Ein Descriptor-Objekt wird typischerweise als Parameter an UI\Draw\Text\Font übergeben, um eine konkrete Schriftressource zu laden, die anschließend für das Zeichnen von Text auf einem UI\Draw\Path oder in einem UI\Draw\Text\Layout verwendet werden kann.
Die Klasse ist Teil der nativen UI-Bindings für PHP und erfordert die ui-PECL-Extension. Die Schriftfamilien-Namen entsprechen den auf dem Betriebssystem installierten Schriften und sind plattformabhängig.
- Familie: z. B.
"Arial","Helvetica" - Größe: Punktgröße als Fließkommazahl
- Gewicht, Stil, Dehnung: über Klassenkonstanten steuerbar
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $family Pflicht | string | Der Name der Schriftfamilie, z. B. "Arial" oder "DejaVu Sans". Muss auf dem System installiert sein. |
|
| $size Pflicht | float | Die Schriftgröße in Punkten (pt), z. B. 12.0. |
|
| $weight | int | UI\Draw\Text\Font\Weight::Normal | Schriftgewicht (Fettigkeit) als Konstante aus UI\Draw\Text\Font\Weight, z. B. Weight::Bold. |
| $italic | int | UI\Draw\Text\Font\Italic::Normal | Kursivstellung als Konstante aus UI\Draw\Text\Font\Italic, z. B. Italic::Italic oder Italic::Oblique. |
| $stretch | int | UI\Draw\Text\Font\Stretch::Normal | Horizontale Dehnung der Schrift als Konstante aus UI\Draw\Text\Font\Stretch, z. B. Stretch::Condensed. |
Beispiele
Einfache Schriftart-Beschreibung erstellen
<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Font\Weight;
use UI\Draw\Text\Font\Italic;
use UI\Draw\Text\Font\Stretch;
// Normaler Arial-Text mit 14 Punkten
$descriptor = new Descriptor('Arial', 14.0);
// Fetter, kursiver Text
$boldItalicDescriptor = new Descriptor(
'Arial',
16.0,
Weight::Bold,
Italic::Italic,
Stretch::Normal
);
echo 'Descriptor erstellt.' . PHP_EOL;
Schriftart-Descriptor in einem Text-Layout verwenden
<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Font;
use UI\Draw\Text\Layout;
use UI\Draw\Color;
use UI\Size;
// Descriptor definieren
$descriptor = new Descriptor('DejaVu Sans', 12.0);
// Font-Objekt aus Descriptor laden
$font = new Font($descriptor);
// Layout für Text erstellen
$layout = new Layout('Hallo Welt!', $font, new Size(200, 50));
echo 'Layout mit Font erstellt.' . PHP_EOL;
// Wichtig · Fallstricke
Plattformabhängigkeit: Die verfügbaren Schriftfamilien hängen vom Betriebssystem ab. Nicht installierte Schriften führen zu einem Fallback oder einem Fehler. Für plattformübergreifende Anwendungen sollten generische Familiennamen oder Systemschriften genutzt werden.
PECL-Extension: Diese Klasse steht nur zur Verfügung, wenn die ui-Extension installiert und geladen ist (extension=ui in der php.ini). Die Extension befindet sich im experimentellen Stadium; API-Änderungen sind möglich.
Die Konstanten für Weight, Italic und Stretch befinden sich in den separaten Klassen UI\Draw\Text\Font\Weight, UI\Draw\Text\Font\Italic und UI\Draw\Text\Font\Stretch.