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

  • 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 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.