Einzelnen Beitrag anzeigen

sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: BitMap zeichnen per API

  Alt 27. Nov 2012, 13:28
Hey, das ging ja schnell!


also bisher sieht es so aus (der wichtigste Ausschnitt der Funktion):


for I := BILDHÖHE - 1 downto 0 do
begin

TmpLine := BITMAP.ScanLine[I];

for J := 0 to BILDBREITE - 1 do
begin
try
TmpRGB := (OLEVARIANT[I,J] or (OLEVARIANT[I,J] shl 8) or (OLEVARIANT[I,J] shl 16));

TmpLine[J * 3 + 2] := TmpRGB;
TmpLine[J * 3 + 1] := TmpRGB;
TmpLine[J * 3] := TmpRGB;
finally

end;
end;
end;






Ja, die Idee mit Scanline hatte ich auch.
das hätte ich dann ungefähr so gelöst:


var TmpLine : PByteArray;
TmpALine: array of Byte;

for I := BILDHÖHE - 1 downto 0 do
begin

TmpLine := BITMAP.ScanLine[I];
TmpALine := OLEVARIANT[I];
Move(TmpALine, TmpLine, ???); <- wobei ich hier nicht genau weiss, was ich eintragen müsste

end;


Aber leider stehen die Einträge der ersten Dimension des Arrays für die Spalten
und die Einträge der zweiten für die Zeilen. Womit sich das auch erledigt hat oder?



Kannst du mir denn mal ein Beispiel für "BitBlt" mit meinem OleVariant geben?
Björn

Geändert von sintronic86 (27. Nov 2012 um 14:07 Uhr)
  Mit Zitat antworten Zitat