Danke werde mir das mal alles zu gemüte führen
Hab das früher mit GetDiBits gemacht aber man glaubt es nicht ist auch nicht schneller als Scanline. (Hmm.. oder doch nicht)
http://ksymeon.blogspot.de/2010/02/g...pixels-in.html
Hier mal noch etwas code wie ich die Daten fülle.
Delphi-Quellcode:
while BASS_ChannelIsActive(Channel) <> BASS_ACTIVE_STOPPED do begin
BASS_ChannelGetData(Channel, Pointer(Buffer), BASS_DATA_FFT512);
for i := 0 to BUFFER_SIZE - 1 do begin
Value := SQRT(SQRT(Buffer[i]));
H := 0 + Value / 1.5;
L := Value;
Image1.Picture.Bitmap.Canvas.Pixels[ColumnCounter, BUFFER_SIZE - i] := HSLtoRGB(H, S, L);
end;
Inc(ColumnCounter);
Progress := Trunc(100 * (BASS_ChannelGetPosition(Channel, BASS_POS_BYTE) / BASS_ChannelGetLength(Channel, BASS_POS_BYTE)));
Form2.ProgressBar1.Position := Progress;
Application.ProcessMessages;
end;
gruss