AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Hilfe! mein Scanline ist Kaputt!
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe! mein Scanline ist Kaputt!

Ein Thema von xy124 · begonnen am 2. Nov 2008 · letzter Beitrag vom 3. Nov 2008
 
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.494 Beiträge
 
Delphi 12 Athens
 
#4

Re: Hilfe! mein Scanline ist Kaputt!

  Alt 3. Nov 2008, 11:08
Zitat von xy124:
was mach' ich falsch?
- Zugriff auf Zeilen und Spalten richtig: 0..239, 0..319
- Die Addition der Farbwerte(Byte) ergibt wahrscheinlich einen Überlauf, da vorher keine Typumwandlung erfolgt.
- Der Durchschnitt aus allen drei Farbwerten ist nur eine grobe Vereinfachung der Helligkeit.
- Die Deklaration von Farbe1 und Farbe2 ist nicht aufgeführt, der eigentliche Fehler ist da zu vermuten.

Delphi-Quellcode:
uses
  GraphUtil;

type
  TBGR = packed record
    B, G, R: Byte;
  end;

procedure vergleichebilder2(bmp1, bmp2: TBitmap; dMax: Word);
var
  Farbe1, Farbe2: ^TBGR;
  Hue1, Luminance1, Saturation1,
  Hue2, Luminance2, Saturation2: Word;
  x, y, xMax, yMax, d: Integer;
begin
  yMax := Min(bmp1.Height, bmp2.Height) - 1;
  xMax := Min(bmp1.Width, bmp2.Width) - 1;
  bmp1.Pixelformat := pf24Bit;
  bmp2.Pixelformat := pf24Bit;

  for y := 0 to yMax do
  begin
    Farbe1 := bmp1.ScanLine[y];
    Farbe2 := bmp2.ScanLine[y];
    for x := 0 to xMax do
    begin
      ColorRGBToHLS(RGB(Farbe1^.R, Farbe1^.G, Farbe1^.B), Hue1, Luminance1, Saturation1);
      ColorRGBToHLS(RGB(Farbe2^.R, Farbe2^.G, Farbe2^.B), Hue2, Luminance2, Saturation2);
      {Umwandlung zu Integer für Differenzberechnung mit Vorzeichen}
      d := Integer(Luminance1) - Integer(Luminance2);
      if ABS(d) > dMax then
      begin
        farbe2^.B := 0;
        farbe2^.G := 0;
        farbe2^.R := 255;
      end;
      Inc(Farbe1);
      Inc(Farbe2);
    end;
  end;
end;
Bei mir erfolgreich getestet.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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