====== TBitmap — Bild im Speicher ====== Ein Bild als Pixelfläche, 32 Bit je Pixel. ''TBitmap'' ist die Grundlage von [[lyx_-_programmiersprache:vega:controls:timage|TImage]] und [[lyx_-_programmiersprache:vega:controls:timagelist|TImageList]] und lässt sich auch direkt auf eine [[lyx_-_programmiersprache:vega:guides:zeichnen|Zeichenfläche]] bringen. Unit: ''Vega.Picture'' · Basis: keine → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:guides:zeichnen|Guide: Zeichnen]] ---- ===== Verwendung ===== var bm: TBitmap := new TBitmap(); bm.SetSize(8, 4); // false, wenn zu groß bm.Clear(RGB(200, 0, 0)); bm.SetPixel(1, 1, RGB(0, 0, 255)); Print(IntToStr(bm.Width)); // 8 Print(IntToStr(bm.Height)); // 4 Print(IntToStr(bm.Empty() as int64)); // 0 // aus einer Datei var foto: TBitmap := new TBitmap(); if (foto.LoadFromFile("bild.png")) { foto.DrawTo(canvas, 10, 10); var klein: TBitmap := foto.CreateScaled(64, 64); } ---- ===== Besonderheiten ===== * ''SetSize'' liefert ''false'', wenn die Fläche ''VEGA_MAX_IMAGE_PIXELS'' (64 Mio. Pixel) überschreitet — eine kaputte Datei soll nicht den ganzen Speicher ziehen. * Ohne Alphakanal hilft ''MakeTransparent(farbe)'': das ist der Weg für BMP und GIF. * ''CreateScaled'' erzeugt ein **neues** Bitmap, das der Aufrufer freigeben muss. Einmal beim Laden skalieren ist billiger als bei jedem Zeichnen. * ''Data'' und ''DataSize'' sind nur zum Lesen gedacht — wer selbst hineinschreibt, muss die Größe aus ''Width'' und ''Height'' selbst nachrechnen. * ''Free'' gibt nur die Pixelfläche frei, ''Destroy'' das ganze Objekt. Letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/Picture.lyx'' erhoben, Beispiel mit ''lyxc 1.1.3O'' übersetzt. ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''Width'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Breite | eigen | | ''Height'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Höhe | eigen | | ''Data'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Adresse der Bilddaten, 32 Bit je Pixel (nur lesen) | eigen | | ''DataSize'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Größe der Bilddaten in Bytes (nur lesen) | eigen | | ''HasAlpha'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Bild führt einen Alphakanal | eigen | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''Create(): void'' | Konstruktor | eigen | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen | | ''Free(): void'' | Nur die Pixelfläche freigeben, das Objekt bleibt bestehen | eigen | | ''Empty(): bool'' | Kein Bild geladen | eigen | | ''SetSize(w: int64, h: int64): bool'' | Bildfläche anlegen; ''false'', wenn ''VEGA_MAX_IMAGE_PIXELS'' überschritten wird | eigen | | ''Clear(c: TColor): void'' | Leeren — bei ''TBitmap'' die Fläche mit ''c'' füllen | eigen | | ''PixelAt(x: int64, y: int64): TColor'' | Farbe eines Pixels | eigen | | ''SetPixel(x: int64, y: int64, c: TColor): void'' | Pixel setzen | eigen | | ''LoadFromFile(path: pchar): bool'' | Bild aus einer Datei laden | eigen | | ''LoadFromMemory(addr: int64, len: int64): bool'' | Bild aus einem Speicherbereich laden | eigen | | ''DrawTo(canvas: TCanvas, x: int64, y: int64): void'' | Bild an ''x'',''y'' zeichnen | eigen | | ''StretchDrawTo(canvas: TCanvas, r: TRect): void'' | Bild auf das Rechteck gezerrt zeichnen | eigen | | ''DrawPartTo(canvas: TCanvas, x: int64, y: int64, quelle: TRect): void'' | Ausschnitt ''quelle'' an ''x'',''y'' zeichnen | eigen | | ''DrawPartFadedTo(canvas: TCanvas, x: int64, y: int64, quelle: TRect): void'' | Ausschnitt blass zeichnen — für deaktivierte Knöpfe | eigen | | ''MakeTransparent(c: TColor): void'' | Eine Farbe im Bild durchsichtig machen (für Formate ohne Alphakanal) | eigen | | ''Assign(src: TBitmap): bool'' | Inhalt aus einem anderen Bitmap übernehmen (Kopie) | eigen | | ''CreateScaled(w: int64, h: int64): TBitmap'' | Verkleinerte Fassung als neues ''TBitmap'' — einmal beim Laden statt bei jedem Zeichnen | eigen | ---- ===== Ereignisse ===== Keine. Letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/Picture.lyx'' erhoben, Beispiel mit ''lyxc 1.1.3O'' übersetzt.