Signatur
Beschreibung
UI\Draw\Text\Font\Weight ist eine Klasse der PHP-UI-Erweiterung (php-ui / libui), die Konstanten für verschiedene Schriftstärken bereitstellt. Diese Konstanten werden verwendet, wenn ein UI\Draw\Text\Font\Descriptor-Objekt erstellt wird, um die Stärke (Gewicht) der gewünschten Schriftart zu definieren.
Die Klasse entspricht konzeptuell einem Enum und stellt ganzzahlige Werte für Schriftstärken bereit, die dem CSS-Font-Weight-System ähneln – von sehr dünn (Weight::Thin) bis sehr schwer (Weight::Heavy). Dadurch können Texte mit präziser typografischer Kontrolle gezeichnet werden.
Typische Verwendung: Man übergibt eine der Konstanten dieser Klasse als Parameter an den Font-Descriptor, der wiederum beim Aufbau von UI\Draw\Text\Layout-Objekten zum Einsatz kommt, um Text in UI-Oberflächen oder auf Draw-Flächen zu rendern.
Weight::Thin– sehr dünne Schrift (100)Weight::UltraLight– ultra-leicht (200)Weight::Light– leicht (300)Weight::Book– Buch-Gewicht (350)Weight::Normal– normal/regulär (400)Weight::Medium– mittel (500)Weight::SemiBold– halbfett (600)Weight::Bold– fett (700)Weight::UltraBold– ultra-fett (800)Weight::Heavy– schwer (900)Weight::UltraHeavy– ultra-schwer (950)
Beispiele
Fetten Text mit Font-Descriptor zeichnen
<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Font\Weight;
use UI\Draw\Text\Layout;
use UI\Size;
// Font-Descriptor mit fettem Schriftgewicht erstellen
$descriptor = new Descriptor('Arial', 14);
$descriptor->setWeight(Weight::Bold);
// Text-Layout mit dem Descriptor erstellen
$layout = new Layout('Hallo Welt', $descriptor, new Size(200, 50));
// $layout kann nun in einem Draw-Handler auf einer UI-Fläche gezeichnet werden
// $context->text($layout, new UI\Point(10, 10));
Verschiedene Schriftstärken für UI-Elemente vergleichen
<?php
use UI\Draw\Text\Font\Descriptor;
use UI\Draw\Text\Font\Weight;
use UI\Draw\Text\Layout;
use UI\Size;
$weights = [
'Thin' => Weight::Thin,
'Light' => Weight::Light,
'Normal' => Weight::Normal,
'Bold' => Weight::Bold,
'Heavy' => Weight::Heavy,
];
foreach ($weights as $label => $weight) {
$descriptor = new Descriptor('Helvetica', 12);
$descriptor->setWeight($weight);
$layout = new Layout($label, $descriptor, new Size(150, 30));
// Layout für den jeweiligen Gewichtswert bereit
echo "Font-Gewicht '{$label}' erstellt.\n";
}
// Wichtig · Fallstricke
Hinweis: Diese Klasse ist Teil der experimentellen php-ui-Erweiterung (PECL), die nicht in der PHP-Standardinstallation enthalten ist. Sie muss separat über PECL installiert werden (pecl install ui). Die Erweiterung befindet sich im Beta-Stadium und die API kann sich noch ändern.
Nicht alle Schriftstärken sind für jede Schriftart verfügbar. Wird eine nicht unterstützte Stärke angefordert, wählt das Betriebssystem typischerweise die nächstgelegene verfügbare Stärke aus. Die tatsächliche Darstellung hängt vom installierten Schriftsystem des Betriebssystems ab.