- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Jämför två bilder på pixelnivå Kategori: Grafik
Inlagt: 2006-04-08
Läst: 1049
Inlagt av: Staffan Berg
Beskrivning
Denna procedur jämför två bilder pixel för pixel.
Kod
procedure TForm1.Button1Click(Sender: TObject); 
var 
 b1, b2: TBitmap; 
 c1, c2: PByte; 
 x, y, i, 
 different: Integer; // Counter for different pixels 
begin 
 b1 := Image1.Picture.Bitmap; 
 b2 := Image2.Picture.Bitmap; 
 Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal 
 different := 0; 
 for y := 0 to b1.Height - 1 do 
 begin 
  c1 := b1.Scanline[y]; 
  c2 := b2.Scanline[y]; 
  for x := 0 to b1.Width - 1 do 
   for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat 
   begin 
    Inc(different, Integer(c1^ <> c2^)); 
    Inc(c1); 
    Inc(c2); 
   end; 
 end; 
end; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -