Start · Sprachen · PHP · Referenz · UI\Draw\Text\Font

UI\Draw\Text\Font

Klasse

Lädt eine beschriebene Schriftart anhand eines <code>UI\Draw\Text\Font\Descriptor</code>-Objekts für die Verwendung in UI-Zeichenoperationen.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Draw\Text\Font

Beschreibung

UI\Draw\Text\Font repräsentiert eine geladene Schriftart innerhalb der PHP-UI-Erweiterung (php-ui). Sie wird auf Basis eines UI\Draw\Text\Font\Descriptor-Objekts erzeugt, das Schriftfamilie, Stil, Größe und Stärke beschreibt. Das resultierende Font-Objekt kann dann beim Erstellen von UI\Draw\Text\Layout-Objekten verwendet werden, um Text in UI-Fenstern zu rendern.

Die Klasse abstrahiert plattformspezifische Schriftsysteme (z. B. DirectWrite unter Windows, CoreText unter macOS, Pango unter Linux) und ermöglicht so plattformübergreifendes Zeichnen von Text mit einheitlicher API. Eine Instanz dieser Klasse ist nicht direkt veränderbar – Schrifteigenschaften werden vollständig über den Descriptor festgelegt.

Typischerweise wird UI\Draw\Text\Font zusammen mit UI\Draw\Text\Layout eingesetzt: Zunächst wird ein Font-Descriptor konfiguriert, dann eine Font-Instanz daraus geladen, und schließlich ein Text-Layout mit diesem Font erstellt, das in einer Zeichenoperation (UI\Draw\Context::text()) auf der Oberfläche gerendert wird.

Parameter

Name Typ Default Beschreibung
$descriptor Pflicht UI\Draw\Text\Font\Descriptor Ein UI\Draw\Text\Font\Descriptor-Objekt, das Schriftfamilie, -größe, -gewicht, -stil und -strecke beschreibt. Legt die Eigenschaften der zu ladenden Schriftart fest.

Rückgabewert

Typ

Beispiele

Einfache Schriftart laden und Text rendern

<?php
use UI\Draw\Text\Font;
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Layout;
use UI\Point;
use UI\Size;

// Schriftart-Descriptor erstellen: Arial, 14pt
$descriptor = new Descriptor('Arial', 14);

// Font-Objekt laden
$font = new Font($descriptor);

// Text-Layout erzeugen
$layout = new Layout('Hallo Welt!', $font, new Size(200, 50));

// In einem Draw-Handler (UI\Area::redraw):
// $context->text($layout, new Point(10, 10));

Font mit Gewicht und Stil laden

<?php
use UI\Draw\Text\Font;
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Layout;
use UI\Size;

// Fetten, kursiven Font erstellen
$descriptor = new Descriptor('Georgia', 18);
$descriptor->setWeight(\UI\Draw\Text\Font\Weight::Bold);
$descriptor->setItalic(\UI\Draw\Text\Font\Italic::Italic);

$font = new Font($descriptor);

// Font-Eigenschaften abfragen
echo 'Größe: ' . $font->getSize() . PHP_EOL;
echo 'Gewicht: ' . $font->getWeight() . PHP_EOL;

// Layout für Rendering erstellen
$layout = new Layout('Fetter kursiver Text', $font, new Size(300, 60));
Größe: 18 Gewicht: 700

// Wichtig · Fallstricke

Verfügbarkeit: UI\Draw\Text\Font ist Teil der experimentellen php-ui-Erweiterung (PECL), die nicht standardmäßig in PHP enthalten ist. Die API gilt als experimentell und kann sich zwischen Versionen ändern.

Plattformverhalten: Wenn die angegebene Schriftfamilie im Descriptor nicht auf dem System installiert ist, greift das Betriebssystem auf eine Fallback-Schriftart zurück. Es wird keine Ausnahme geworfen, was die Fehlersuche erschweren kann. Prüfe daher die tatsächlich verwendete Schriftart über Methoden wie getFamily().

Ressourcen: Font-Objekte halten systemseitige Ressourcen. In lang laufenden Anwendungen sollte die Anzahl gleichzeitig geladener Font-Instanzen begrenzt werden, um Ressourcenlecks zu vermeiden.