Forum: Win32/Win64 API (native code)
by Blup,
28. Nov 2012
In welcher Reihenfolge die Bildzeilen im Speicher liegen, wird nicht dadurch beeinflusst, in welcher Reihenfolge ich diese kopiere.
Sowohl auf das Variantarray als auch auf ScanLine wird mit dem Index "I" zugegriffen.
Um das Bild vertikal zu spiegeln müsste genau einer der Zugriffe auf "BILDHÖHE - 1 - I" umgestellt werden.
ScanLine berücksichtigt bereits die Ausrichtung der Bilddaten im...
Forum: Win32/Win64 API (native code)
by Blup,
27. Nov 2012
Irgendwie ist der Code seltsam, warum läuft deine I-Schleife gegen Null?
Im Array ist zu jedem Pixel nur ein Byte aufgezeichnet (Graustufen vermutlich).
Du baust daraus ein TmpRGB, verwendest danach aber nur das unteren Byte von TmpRGB.
Dieses wird für jeden Farbkanal einzeln geschrieben (BGR, Pixelformat pf24Bit).
Das geht auch einfacher:
var
TmpLine: PByte;
TmpByte: Byte;
Forum: Win32/Win64 API (native code)
by Blup,
27. Nov 2012
Mit Scanline und Move sollte das aber nicht langsam sein, vieleicht zeigst du uns etwas Code.
SetDIBitsToDevice scheint hier nicht sinnvoll, wenn man die Daten davor umwandeln muss.