Verfasst: 25.01.2009 03:03
ne eher auf ner page wo sich links immer verändern, und ich an dem rechner eh nie wär, ne gute alternative darstellt!
Code: Alles auswählen
CreateImage(0,1280,1024)
Procedure CopyImageToMem(Img.l, *mem)
Protected bmi.BITMAPINFO
Protected w.l, h.l, hBmp.l, hDC.l
w = ImageWidth(Img)
h = ImageHeight(Img)
hBmp = ImageID(Img)
bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
bmi\bmiHeader\biWidth = w
bmi\bmiHeader\biHeight = h
bmi\bmiHeader\biPlanes = 1
bmi\bmiHeader\biBitCount = 32
bmi\bmiHeader\biCompression = #BI_RGB
hDC = StartDrawing(ImageOutput(Img))
If GetDIBits_(hDC, hBmp, 0, h, *mem, bmi, #DIB_RGB_COLORS)
StopDrawing()
ProcedureReturn #True
Else
OpenConsole()
StopDrawing()
ProcedureReturn #False
EndIf
EndProcedure
time = ElapsedMilliseconds()
wi = ImageWidth(0)
hi = ImageHeight(0)
*buffer = AllocateMemory(wi*hi*4)
Debug CopyImageToMem(0,*buffer)
*pos.LONG = *buffer
For y = 0 To hi-1
For x = 0 To wi-1
bgr = *pos\l
red = Blue(bgr)
green = Green(bgr)
blue = Red(bgr)
*pos + 4
Next
Next
Debug StrF((ElapsedMilliseconds()-time)/1000,3)
time = ElapsedMilliseconds()
StartDrawing(ImageOutput(0))
For y = 0 To hi
For x = 0 To wi
rgb = Point(x,y)
red = Red(rgb)
green = Green(rgb)
blue = Blue(rgb)
Next
Next
StopDrawing()
Debug StrF((ElapsedMilliseconds()-time)/1000,3)
Code: Alles auswählen
CreateImage(0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
Procedure CopyImageToMem(Img.l, *mem)
Protected bmi.BITMAPINFO
Protected w.l, h.l, hBmp.l, hDC.l
w = ImageWidth(Img)
h = ImageHeight(Img)
hBmp = ImageID(Img)
bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
bmi\bmiHeader\biWidth = w
bmi\bmiHeader\biHeight = h
bmi\bmiHeader\biPlanes = 1
bmi\bmiHeader\biBitCount = 32
bmi\bmiHeader\biCompression = #BI_RGB
hDC = StartDrawing(ImageOutput(Img))
If GetDIBits_(hDC, hBmp, 0, h, *mem, bmi, #DIB_RGB_COLORS)
StopDrawing()
ProcedureReturn #True
Else
OpenConsole()
StopDrawing()
ProcedureReturn #False
EndIf
EndProcedure
time = ElapsedMilliseconds()
wi = ImageWidth(0)
hi = ImageHeight(0)
*buffer = AllocateMemory(wi*hi*4)
Debug CopyImageToMem(0,*buffer)
SaveImage(0,"C:/test.bmp")
*pos.LONG = *buffer
For y = 0 To hi-1
For x = 0 To wi-1
bgr = *pos\l
red = Blue(bgr)
green = Green(bgr)
blue = Red(bgr)
*pos + 4
Next
Next
Debug Str((ElapsedMilliseconds()-time))
time = ElapsedMilliseconds()
StartDrawing(ImageOutput(0))
For y = 0 To hi
For x = 0 To wi
rgb = Point(x,y)
red = Red(rgb)
green = Green(rgb)
blue = Blue(rgb)
Next
Next
StopDrawing()
Debug Str((ElapsedMilliseconds()-time))