Ĺadny brzuch
Czy można jakoś szybciej sprawdzić, czy coś się różni w linijce X niż sprawdzając pixel po pixelu?
----
m@il: ali88[at]tlen[dot]pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712
Nie znam innej metody... Moze asm ?
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
function Porownaj(Image1, Image2: TImage) : integer; var x, y: integer; liczba: LongInt; punkt1, punkt2: PByteArray; procent: double; const max_roznica=5; begin liczba:=0; for y:=0 to image1.Picture.Bitmap.height-1 do begin punkt1:=image1.Picture.Bitmap.scanline[y]; punkt2:=image2.Picture.Bitmap.scanline[y]; for x:=0 to image1.Picture.Bitmap.width-1 do if abs(punkt1[x]-punkt2[x])>max_roznica then inc(liczba); if image1.Picture.Bitmap.height*image1.Picture.Bitmap.width>0 then procent:=100*(liczba/(image1.Picture.Bitmap.height* image1.Picture.Bitmap.width)) else procent:=0; Result := 100-round(procent); end; end; Teraz jeszcze tylko posłużmy się nią Label1.Caption:= 'Rysunki podobne są do siebie w '+ IntToStr(Porownaj(Image1,Image2))+' procentach';
Image1 i Image2 to obiekty klasy TImage zawierające rysunki w formacie BMP. Funkcja nie jest skomplikowana, przeanalizuj ją, a zrozumiesz jak działa.
//----------------------
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na www.beldzio.com/beta
Dzięki 8)
----
m@il: ali88[at]tlen[dot]pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
----
m@il: ali88[at]tlen[dot]pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712
Nie znam innej metody... Moze asm ?
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
function Porownaj(Image1, Image2: TImage) : integer; var x, y: integer; liczba: LongInt; punkt1, punkt2: PByteArray; procent: double; const max_roznica=5; begin liczba:=0; for y:=0 to image1.Picture.Bitmap.height-1 do begin punkt1:=image1.Picture.Bitmap.scanline[y]; punkt2:=image2.Picture.Bitmap.scanline[y]; for x:=0 to image1.Picture.Bitmap.width-1 do if abs(punkt1[x]-punkt2[x])>max_roznica then inc(liczba); if image1.Picture.Bitmap.height*image1.Picture.Bitmap.width>0 then procent:=100*(liczba/(image1.Picture.Bitmap.height* image1.Picture.Bitmap.width)) else procent:=0; Result := 100-round(procent); end; end; Teraz jeszcze tylko posłużmy się nią Label1.Caption:= 'Rysunki podobne są do siebie w '+ IntToStr(Porownaj(Image1,Image2))+' procentach';
Image1 i Image2 to obiekty klasy TImage zawierające rysunki w formacie BMP. Funkcja nie jest skomplikowana, przeanalizuj ją, a zrozumiesz jak działa.
//----------------------
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na www.beldzio.com/beta
Dzięki 8)
----
m@il: ali88[at]tlen[dot]pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712