TBitmap — Bild im Speicher
Ein Bild als Pixelfläche, 32 Bit je Pixel. TBitmap ist die Grundlage von TImage und TImageList und lässt sich auch direkt auf eine Zeichenfläche bringen.
Unit: Vega.Picture · Basis: keine
→ Alle Steuerelemente · 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
SetSizeliefertfalse, wenn die FlächeVEGA_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. CreateScalederzeugt ein neues Bitmap, das der Aufrufer freigeben muss. Einmal beim Laden skalieren ist billiger als bei jedem Zeichnen.DataundDataSizesind nur zum Lesen gedacht — wer selbst hineinschreibt, muss die Größe ausWidthundHeightselbst nachrechnen.Freegibt nur die Pixelfläche frei,Destroydas 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 | int64 | Breite | eigen |
Height | int64 | Höhe | eigen |
Data | int64 | Adresse der Bilddaten, 32 Bit je Pixel (nur lesen) | eigen |
DataSize | int64 | Größe der Bilddaten in Bytes (nur lesen) | eigen |
HasAlpha | 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.
