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

UI\Draw\Text\Font\Stretch

Klasse

Gibt die Dehnung (Breite) einer Schriftart an und definiert, wie gestreckt oder komprimiert die Glyphen einer Schrift erscheinen.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Draw\Text\Font\Stretch

Beschreibung

UI\Draw\Text\Font\Stretch ist eine Klasse in der PHP-UI-Erweiterung (php-ui / libui), die die horizontale Dehnung (Stretch) einer Schriftart repräsentiert. Sie bestimmt, ob eine Schriftart in ihrer normalen Breite, kondensiert oder erweitert dargestellt wird. Diese Eigenschaft wird typischerweise zusammen mit UI\Draw\Text\Font\Descriptor verwendet, um das Erscheinungsbild von Text präzise zu steuern.

Die Klasse stellt Klassenkonstanten bereit, die die verschiedenen Dehnungsstufen definieren – von UI\Draw\Text\Font\Stretch::UltraCondensed (extrem schmal) bis UI\Draw\Text\Font\Stretch::UltraExpanded (extrem breit). Dies entspricht dem CSS-Konzept font-stretch und dem OpenType-Merkmal für Schriftbreiten.

Der praktische Einsatz besteht darin, einen passenden Stretch-Wert beim Aufbau eines UI\Draw\Text\Font\Descriptor-Objekts zu übergeben, um z. B. in UI-Anwendungen Textelemente typografisch differenziert darzustellen – etwa komprimierte Schriften in Tabellenspalten oder breitere Varianten für Überschriften.

Beispiele

Schriftdeskriptor mit kondensierter Dehnung erstellen

<?php
// Erstellt einen Schrift-Deskriptor mit kondensiertem Stretch
$descriptor = new UI\Draw\Text\Font\Descriptor(
    'Arial',                              // Schriftfamilie
    14,                                   // Größe in Pixeln
    UI\Draw\Text\Font\Weight::Normal,     // Gewichtung
    UI\Draw\Text\Font\Italic::Normal,     // Stil
    UI\Draw\Text\Font\Stretch::Condensed  // Dehnung: kondensiert
);

echo 'Stretch-Wert (Condensed): ' . UI\Draw\Text\Font\Stretch::Condensed;
Stretch-Wert (Condensed): 3

Alle verfügbaren Stretch-Konstanten auflisten

<?php
// Übersicht aller Stretch-Konstanten der Klasse
$stretches = [
    'UltraCondensed' => UI\Draw\Text\Font\Stretch::UltraCondensed,
    'ExtraCondensed' => UI\Draw\Text\Font\Stretch::ExtraCondensed,
    'Condensed'      => UI\Draw\Text\Font\Stretch::Condensed,
    'SemiCondensed'  => UI\Draw\Text\Font\Stretch::SemiCondensed,
    'Normal'         => UI\Draw\Text\Font\Stretch::Normal,
    'SemiExpanded'   => UI\Draw\Text\Font\Stretch::SemiExpanded,
    'Expanded'       => UI\Draw\Text\Font\Stretch::Expanded,
    'ExtraExpanded'  => UI\Draw\Text\Font\Stretch::ExtraExpanded,
    'UltraExpanded'  => UI\Draw\Text\Font\Stretch::UltraExpanded,
];

foreach ($stretches as $name => $value) {
    echo sprintf("%-20s => %d\n", $name, $value);
}
UltraCondensed => 0 ExtraCondensed => 1 Condensed => 2 SemiCondensed => 3 Normal => 4 SemiExpanded => 5 Expanded => 6 ExtraExpanded => 7 UltraExpanded => 8

// Wichtig · Fallstricke

Hinweis zur Verfügbarkeit: Die PHP-UI-Erweiterung (ui) ist keine standardmäßige PHP-Erweiterung und muss separat installiert werden (z. B. über PECL: pecl install ui). Sie basiert auf der nativen libui-Bibliothek und ist primär für Desktop-GUI-Anwendungen gedacht.

Plattformunterschied: Nicht alle Schriftarten unterstützen alle Dehnungsstufen. Wird eine nicht verfügbare Stretch-Variante angefordert, wählt das Betriebssystem automatisch die nächstliegende Variante aus. Das tatsächliche Erscheinungsbild kann je nach Betriebssystem und vorhandener Schriftart variieren.

Konstantenwerte: Die genauen Integer-Werte der Konstanten können je nach Version der php-ui-Erweiterung leicht abweichen. Verwende stets die symbolischen Konstanten statt numerischer Literale im Code.