AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia [FMX] Array of Byte (ARGB) schnell in ein TBitmap umwandeln?
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] Array of Byte (ARGB) schnell in ein TBitmap umwandeln?

Ein Thema von JayZ · begonnen am 23. Okt 2017 · letzter Beitrag vom 24. Okt 2017
 
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: [FMX] Array of Byte (ARGB) schnell in ein TBitmap umwandeln?

  Alt 23. Okt 2017, 23:33
Es wird sich wohl nicht vermeiden lassen, die Daten zu kopieren. Ich denke, das schnellste wäre, einfach das Bitmap mit der entsprechenden Größe und dem entsprechenden Pixelformat zu erzeugen, und dann mittels Scanline die Daten aus dem Array Zeile für Zeile rüberzukopieren.

Dein Ansatz mit dem MemoryStream kann so nicht funktionieren, weil der Bitmap-Header fehlt. Aber auch wenn du den Bitmap-Header hinzufügen würdest, wäre es eher kontraproduktiv, da so erst die Daten vom Array in den MemoryStream kopiert werden müssten und anschließend noch mal vom MemoryStream in das Bitmap. Also eine Kopie umsonst.

Delphi-Quellcode:
procedure PixelArrayToBitmap(const PixelArray: array of Byte; const Width: Integer; const Height: Integer; Bitmap: TBitmap)
var
  y: integer;
begin
  Bitmap.PixelFormat := pf32bit;
  Bitmap.SetSize(Width, Height);

  for y := 0 to Height - 1 do
    Move(PixelArray[Width*y], Bitmap.Scanline[y]^, 4*Width);
end;
Versuch es mal damit. Das sind aber gerade die ersten Zeilen Delphi, die ich seit Ewigkeiten schreibe, deshalb ohne Gewähr.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz