Thema: Delphi Screenshot via Handle

Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Screenshot via Handle

  Alt 15. Jun 2008, 18:36
HI Markus,

1. du willst die Durchschnittsfarbe eines Fensters herausfinden. Warum benützt du dazu das Bildschirm-Seitenverhältniss? Ich schlage schrittweises Abtasten ohne Seitenverhältniss vor.
2. Redmond kennt weder rgb_threshold noch changeRGB.
3. wo ich doch grade von Seitenverhältniss spreche:
Delphi-Quellcode:
    changeRGB(Round(i_gesRed / (round(c_aspectorato*c_vertical)*c_vertical)),
              Round(i_gesGreen / (round(c_aspectorato*c_vertical)*c_vertical)),
              Round(i_gesBlue / (round(c_aspectorato*c_vertical)*c_vertical)));
Mit deiner rechnerei kann da (glaub ich mal so ganz einfach) nichts rauskommen. Ich tippe, es müsste so heißen:
Delphi-Quellcode:
    changeRGB(Round(i_gesRed / (i_width*i_height)),
              Round(i_gesGreen / (i_width*i_height)),
              Round(i_gesBlue / (i_width*i_height)));
Die Schleifen sind davon natürlich auch betroffen:
Delphi-Quellcode:
    for i_tmp_x := 1 to i_width do
    begin
      for i_tmp_y := 1 to i_heigth do
      begin
Sonstige Speicherfehler kann ich keine entdecken. Falls du wirklich nicht weiterkommst, mach mal einen Schrittweisen durchgang und such das Speicherloch oder häng mal FastMM rein.
Was natürlich auch sein kann, ist, dass du zu viel Speicher durch zu große Zahlen belegst. Nimm für i_gesRed, i_gesGreen, i_gesBlue mal Int64, um einen größeren Bereich abzudecken.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat