====== std.color ====== RGBA-Farbrepräsentation mit je einem ''int64''-Wert pro Kanal (0–255). Bietet vordefinierte Grundfarben (''ColorBlack'', ''ColorRed'', …), Alpha-Blending, Invertierung, Graustufen-Konvertierung, Helligkeit, Sättigung, lineare Interpolation (''ColorLerp''), Hex-Darstellung (RGB als ''int64'') und HSL-Konvertierung. Alle Operationen sind rein ganzzahlig — keine Fließkommaberechnungen. Einsatzbereiche: Grafikausgabe über X11 oder LyxVision, Bildverarbeitung, Farbberechnungen in UI-Engines, Terminal-Farben. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Imports ===== * ''[[lyx_-_programmiersprache:units:math|std.math]]'' ---- ===== Typen ===== ==== Color (struct) ==== ^ Feld ^ Typ ^ | ''r'' | ''int64'' | | ''g'' | ''int64'' | | ''b'' | ''int64'' | | ''a'' | ''int64'' | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''ColorNew(r: int64, g: int64, b: int64, a: int64): Color'' | pub | Erstellt Farbe aus RGBA-Kanalwerten | | ''ColorRGB(r: int64, g: int64, b: int64): Color'' | pub | Erstellt opake Farbe aus RGB-Werten | | ''ColorRGBA(r: int64, g: int64, b: int64, a: int64): Color'' | pub | Erstellt Farbe mit explizitem Alpha-Kanal | | ''ColorGray(gray: int64): Color'' | pub | Erstellt Grauton aus einem Helligkeitswert | | ''ColorEmpty(): Color'' | pub | Liefert transparente leere Farbe zurück | | ''ColorOpaque(): Color'' | pub | Liefert vollständig opakes Weiß zurück | | ''ColorBlack(): Color { return ColorRGB(0, 0, 0); }'' | pub | Liefert Schwarz zurück | | ''ColorWhite(): Color { return ColorRGB(255, 255, 255); }'' | pub | Liefert Weiß zurück | | ''ColorRed(): Color { return ColorRGB(255, 0, 0); }'' | pub | Liefert Rot zurück | | ''ColorGreen(): Color { return ColorRGB(0, 255, 0); }'' | pub | Liefert Grün zurück | | ''ColorBlue(): Color { return ColorRGB(0, 0, 255); }'' | pub | Liefert Blau zurück | | ''ColorYellow(): Color { return ColorRGB(255, 255, 0); }'' | pub | Liefert Gelb zurück | | ''ColorCyan(): Color { return ColorRGB(0, 255, 255); }'' | pub | Liefert Cyan zurück | | ''ColorMagenta(): Color { return ColorRGB(255, 0, 255); }'' | pub | Liefert Magenta zurück | | ''ColorOrange(): Color { return ColorRGB(255, 165, 0); }'' | pub | Liefert Orange zurück | | ''ColorPurple(): Color { return ColorRGB(128, 0, 128); }'' | pub | Liefert Lila zurück | | ''ColorPink(): Color { return ColorRGB(255, 192, 203); }'' | pub | Liefert Rosa zurück | | ''ColorBrown(): Color { return ColorRGB(165, 42, 42); }'' | pub | Liefert Braun zurück | | ''ColorGrayLight(): Color { return ColorRGB(200, 200, 200); }'' | pub | Liefert Hellgrau zurück | | ''ColorGrayDark(): Color { return ColorRGB(64, 64, 64); }'' | pub | Liefert Dunkelgrau zurück | | ''ColorIsOpaque(c: Color): bool'' | pub | Prüft ob Farbe vollständig opak ist | | ''ColorIsTransparent(c: Color): bool'' | pub | Prüft ob Farbe vollständig transparent ist | | ''ColorIsValid(c: Color): bool'' | pub | Prüft ob alle Kanalwerte im gültigen Bereich | | ''ColorWithAlpha(c: Color, alpha: int64): Color'' | pub | Gibt Farbe mit neuem Alpha-Wert zurück | | ''ColorWithRed(c: Color, red: int64): Color'' | pub | Gibt Farbe mit neuem Rot-Kanal zurück | | ''ColorWithGreen(c: Color, green: int64): Color'' | pub | Gibt Farbe mit neuem Grün-Kanal zurück | | ''ColorWithBlue(c: Color, blue: int64): Color'' | pub | Gibt Farbe mit neuem Blau-Kanal zurück | | ''ColorBlend(src: Color, dst: Color): Color'' | pub | Mischt Quell- und Zielfarbe per Alpha-Blending | | ''ColorMultiply(c1: Color, c2: Color): Color'' | pub | Multipliziert zwei Farben kanalweise | | ''ColorInvert(c: Color): Color'' | pub | Invertiert alle RGB-Kanäle der Farbe | | ''ColorGrayscale(c: Color): Color'' | pub | Konvertiert Farbe in Graustufe | | ''ColorBrighten(c: Color, amount: int64): Color'' | pub | Erhöht Helligkeit um angegebenen Betrag | | ''ColorDarken(c: Color, amount: int64): Color'' | pub | Verringert Helligkeit um angegebenen Betrag | | ''ColorSaturate(c: Color, amount: int64): Color'' | pub | Erhöht Sättigung um angegebenen Betrag | | ''ColorLerp(c1: Color, c2: Color, t: int64): Color'' | pub | Interpoliert linear zwischen zwei Farben | | ''ColorMix(c1: Color, c2: Color): Color'' | pub | Mischt zwei Farben zu gleichen Teilen | | ''ColorEqual(c1: Color, c2: Color): bool'' | pub | Prüft zwei Farben auf Gleichheit | | ''ColorNotEqual(c1: Color, c2: Color): bool'' | pub | Prüft zwei Farben auf Ungleichheit | | ''ColorDistance(c1: Color, c2: Color): int64'' | pub | Berechnet euklidischen Abstand zweier Farben | | ''ColorFromHex(hex: int64): Color'' | pub | Erstellt Farbe aus Hex-RGB-Wert | | ''ColorToHex(c: Color): int64'' | pub | Konvertiert Farbe in RGB-Hex-Wert | | ''ColorToHexARGB(c: Color): int64'' | pub | Konvertiert Farbe in ARGB-Hex-Wert | | ''ColorFromHSL(h: int64, s: int64, l: int64): Color'' | pub | Erstellt Farbe aus HSL-Kanalwerten | | ''HueToRGB(p: int64, q: int64, hue: int64): int64'' | priv | Hilfsfunktion für HSL-zu-RGB-Konvertierung |