Start · Sprachen · PHP · Referenz · UI\Draw\Color

UI\Draw\Color

Klasse

Repräsentiert eine RGBA-Farbe, deren Kanäle Rot, Grün, Blau und Alpha als öffentliche Eigenschaften zugänglich sind.

seit PHP 0.9.9 Kategorie: misc

Signatur

class UI\Draw\Color

Beschreibung

UI\Draw\Color ist Teil der UI-Erweiterung (php-ui / libui) und kapselt eine Farbe im RGBA-Farbraum. Die vier Kanäle r (Rot), g (Grün), b (Blau) und a (Alpha/Transparenz) werden als Fließkommazahlen im Bereich von 0.0 bis 1.0 gespeichert und sind als öffentliche Eigenschaften direkt les- und schreibbar.

Die Klasse wird überall dort verwendet, wo die UI-Bibliothek Farbangaben erwartet, etwa beim Zeichnen auf einem UI\Draw\Pen, beim Konfigurieren von UI\Draw\Brush-Objekten oder beim Festlegen von Farben für grafische Primitiven. Sie bietet eine strukturierte Alternative zur Übergabe von rohen Gleitkomma-Werten und macht Code lesbarer und wartbarer.

Objekte können entweder leer erstellt und anschließend befüllt werden, oder es lassen sich beim Konstruktor direkt alle Kanalwerte übergeben. Ein Alpha-Wert von 1.0 bedeutet vollständig opak, 0.0 ist vollständig transparent.

Parameter

Name Typ Default Beschreibung
$r float 0.0 Rotanteil der Farbe als Fließkommazahl zwischen 0.0 und 1.0.
$g float 0.0 Grünanteil der Farbe als Fließkommazahl zwischen 0.0 und 1.0.
$b float 0.0 Blauanteil der Farbe als Fließkommazahl zwischen 0.0 und 1.0.
$a float 1.0 Alphakanal (Deckkraft) der Farbe als Fließkommazahl zwischen 0.0 (transparent) und 1.0 (opak).

Beispiele

Farbe mit Konstruktor-Parametern erstellen

<?php
// Erstellt ein vollständig opakes Rot
$red = new UI\Draw\Color(1.0, 0.0, 0.0, 1.0);
echo $red->r; // 1
echo $red->g; // 0
echo $red->b; // 0
echo $red->a; // 1
1000

Farbe nachträglich befüllen und Transparenz setzen

<?php
// Leeres Farbobjekt anlegen und dann befüllen
$color = new UI\Draw\Color();
$color->r = 0.0;
$color->g = 0.5;
$color->b = 1.0;
$color->a = 0.75; // 75 % Deckkraft

// Farbe an einen Draw-Brush übergeben (Beispielkontext)
$brush = new UI\Draw\Brush();
$brush->color = $color;

Hilfsfunktion: Farbe aus Hex-String erzeugen

<?php
/**
 * Wandelt einen HTML-Hex-Farbcode (#RRGGBB) in ein UI\Draw\Color-Objekt um.
 */
function colorFromHex(string $hex, float $alpha = 1.0): UI\Draw\Color
{
    $hex = ltrim($hex, '#');
    return new UI\Draw\Color(
        hexdec(substr($hex, 0, 2)) / 255,
        hexdec(substr($hex, 2, 2)) / 255,
        hexdec(substr($hex, 4, 2)) / 255,
        $alpha
    );
}

$orange = colorFromHex('#FF8C00');
echo round($orange->r, 4); // ~1.0
echo round($orange->g, 4); // ~0.549
10.549

// Wichtig · Fallstricke

Wertebereich beachten: Kanalwerte außerhalb von 0.0 bis 1.0 können zu undefiniertem Verhalten oder Darstellungsfehlern führen. Eine Validierung der Eingaben vor der Zuweisung ist empfehlenswert.

Die Klasse ist Teil der experimentellen php-ui-Erweiterung, die sich noch im Entwicklungsstadium befindet. API-Änderungen zwischen Versionen sind möglich. Für Produktiveinsatz sollte die Stabilität der verwendeten Erweiterungsversion geprüft werden.