![]() |
Re: Farbe von Bildschirminhalt ermitteln ?
Hm schade habe es gerade mal mit anderen Videos versucht. Manche lassen sich garnicht laden. (programm hängt sich auf)
Bei anderen die angezeigt werden bleiben die Farbfelder weiß. Einen unterschied zwischen fertiger und selbstcompilierter exe konnte ich nicht feststellen. Kannst du das programm evtl. auf einen Art Screenshot Methode umbauen, dann ist dabei das Abspielmedium ja egal. mfg Yannic |
Re: Farbe von Bildschirminhalt ermitteln ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich bin jetzt auch nochmal etwas weitergekommen :) Im Angehängten Programm gibt es 2 Optionen einmal Scan1 und Scan2. Scan 1 beinhaltet das ganze am Anfang angetestete Prinzip. Scan 2 funktioniert nach dem Prinzip welches ich eine Seite zuvor angedacht habe. Währe super wenn mal jemand das programm bei sich austesten könnte. Meiner meinung nach liefer die Scan 2 Methode schon ein super Ergebnis. (Die von mir angesprochene prozentuale Berücksichtigung des Schwarz/Weiß anteils habe ich noch nicht umgestezt, scheint aber auch garnicht nötig). Die Geschwindigkeit liegt jetzt zumindest bei mir auch in einem angenehmen Rahmen. Hat jemand dazu vielleicht noch Verbesserungsvorschläge ? mfg Yannic Edit. Das Programm scannt momentan nicht die Seitenränder sondern den Monitor Mittelpunkt. |
Re: Farbe von Bildschirminhalt ermitteln ?
So,
nach einigem geteste möchte ich nun noch eine Zusatzfunktion verbauen. Momentan Scanne ich ja die Pixel wie folgt:
Delphi-Quellcode:
Problem ist nun das wenn der Screenshot beispielsweise 150 x 150 px groß ist 22500 Pixel "gescannt" werden und das ist etwas zu viel.
for y := 0 to Screenshot.Height - 1 do
begin for x := 0 to Screenshot.Width - 1 do begin Color := WinColor(Screenshot.Pixel[x, y]); ColorArray_r[pixelcount] := GetRValue(Color); ColorArray_g[pixelcount] := GetGValue(Color); ColorArray_b[pixelcount] := GetBValue(Color); inc(pixelcount); end; end; Deswegen wollte ich nun folgendes vorgeben. 1. Größe des Screenshots 2. Anzahl der zu "scannenden" Pixel, diese sollen dann gleichmäßig über den Screenshot verteilt werden. Nun habe ich dabei aber ein gewaltiges Schleifenproblem. Wie kann ich eine Schleife erstellen die die eine variable Anzahl an punkten gleichmäßig in einem in der größe variablen Quadrat scannt ? Um überhaupt erstmal weniger pixel zu scannen hatte ich folgedes versucht:
Delphi-Quellcode:
So wollte ich jetzt nur jede 5. Reihe der y Achse scannen was allerings zu einem Exception Error führt.
while y <= Screenshot.Height - 1 do
begin y := y + 5; for x := 0 to Screenshot.Width - 1 do begin inc(pixelcount); Color := WinColor(Screenshot.Pixel[x, y]); ColorArray_r[pixelcount] := GetRValue(Color); ColorArray_g[pixelcount] := GetGValue(Color); ColorArray_b[pixelcount] := GetBValue(Color); end; end; Ich hoffe jemand kann behilflich sein :) mfg Yannic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz