Hi.
Erstmal tschuldigung für die schlechte Überschrift, wenn das Thema gelöst wird dann ändere ich sie eventuell.
Aber nun zum Problem, geht um folgenden Code:
Delphi-Quellcode:
type TRGBArray = array [0..100000000] of RGBQUAD;
PRGBARRAY = ^TRGBArray;
var
a,b: RGBQUAD;
h,w: Integer;
test,test2 : PRGBARRAY;
for h := 0 to 240 - 1 do
begin
test := form2.Image1.picture.bitmap.ScanLine[h];
test2 := form3.imgBuffer.Picture.Bitmap.ScanLine[h];
for w := 0 to 320 - 1 do
begin
a := test^[w];
b := test2^[w];
a := b;
if form3.netz.input[(h*320)+w].nettoinput <> 0 then
a.rgbRed := $FF;
test^[w] := a;
end;
end;
form2.image1.Invalidate;
Der Code kopiert praktisch ein Bild auf ein anderes. Klar, dass geht eleganter. Es geht aber ums Prinzip.
Zusätzlich zum kopieren wird jeder Pixel je nach Arrayeintrag gefärbt. Allerdings kommt dann sowas wie im Anhang raus.
Pixelformat vom Zielbild ist 32 Bit, die Quelle ist via Callback über die Webcam gecaptured.
Weiß jemand, was ich falsch mache? Wieso funktioniert das eigentliche kopieren, nur das Rot machen geht nicht?
Achso, je weiter ich den Stift nach links bewege, desto mehr deckt sich der rote Bereich mit dem Stift o_O
DANKE,
lg Flips
Ps: Das geht glaub auch mit einer Schleife, hat jemand den passenden Code mit einer Schleife?
Philipp F.