PixelGetColor - 60 Pixel in 1.8 Sekunden?

  • Hallo,

    ich möchte gern ein paar Pixel direkt vom Desktop auslesen.
    Ich habe es per DLL sprich Windows' GetPixel sowieso standardmäßig mit der PixelGetColor Funktion versucht.

    Alles was ich tue, ist 64 Pixel auszulesen.
    Wieso dauert das 1,8 Sekunden? Das kann doch nicht sein?
    Habe ein Notebook mit i7 Prozessor, 2,8GHz, 4GB RAM..

    Danke :0

    • Offizieller Beitrag
    Zitat

    Wieso dauert das 1,8 Sekunden?


    Keine Ahnung.

    Zitat

    Das kann doch nicht sein?


    Siehst du doch, das es sein kann.

    Denkst du wir sind alle Hellseher? Wo ist dein Script zum testen?

  • Hi,
    ich verarbeite Full-HD 32Bit-Bitmaps (1920 × 1080 Pixel = 2,07 Megapixel) in einer Handvoll Millisekunden...
    Um einzelne Pixel einzulesen, braucht ein Prozessor nur einige Takte.

    Alles was ich tue, ist 64 Pixel auszulesen.
    Wieso dauert das 1,8 Sekunden?


    Weil dein Script besch***** ist!
    Ansonsten hättest du es doch gepostet.

    Danke :0


    Gern geschehen....

  • Ich vermute mal dass dein Skript in etwa so aussieht:

    [autoit]

    Dim $aArr[8][8]

    [/autoit][autoit][/autoit][autoit]

    $hTimer = TimerInit()
    For $iX = 0 To UBound($aArr, 1) -1
    For $iY = 0 To UBound($aArr, 2) -1
    $aArr[$iX][$iY] = PixelGetColor($iX, $iY)
    Next
    Next

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite(TimerDiff($hTimer) & @CRLF)

    [/autoit]

    Das ist nicht gerade die optimale Lösung. Das dauert so lange da zuerst ein Gerätekontext geöffnet werden muss, die Oberfläche kopiert, der Pixel gelesen und der Gerätekontext wieder geschlossen werden muss. 3 dieser Schritte kannst du dir bei jedem Schleifendurchgang sparen indem man einfach ein wenig nachdenkt und sich mit GDI beschäftigt. So schwer ist das nicht, dann kannst du jeden einzelnen Pixel des Bildschirms unter 50ms auslesen. Da wette ich drauf!

  • Davon mal abgesehen gibt es für mich keinen sinnvollen Grund Pixel auf dem Desktop auszulesen. Was soll damit erreicht werden? Ich würde wetten es gibt zig bessere und schnellere Möglichkeiten das Ziel zu erreichen.