Új hozzászólás Aktív témák
-
fatal`
titán
válasz
kingabo
#1973
üzenetére
Az nagyon lassú. Bár C#-ban nem próbálkoztam ilyennel, de delphiben azt lehetett csinálni, hogy mindkét képet betöltöttem egy MemoryStream-be és azoknak a tartalmát hasonlítottam össze (nem kell fájlba menteni).
A delphis kód így nézett ki:
function Osszehasonlit(B1, B2: TBitmap): Boolean;
var
S1, S2: TMemoryStream;
begin
S1 := TMemoryStream.Create;
S2 := TMemoryStream.Create;
try
B1.SaveToStream(S1);
B2.SaveToStream(S2);
Result := CompareMem(S1.Memory, S2.Memory, Max(S1.Size, S2.Size));
finally
S1.Free;
S2.Free;
end;
end;Gondolom van valami hasonló .NET-ben is. A ramot falja ez tény.
-
#90999040
törölt tag
válasz
kingabo
#1973
üzenetére
Az az igazság, hogy én is csak "Memóriafaló" megoldással tudtam megoldani.

bool Imageegyezike(Image kep1, Image kep2)
{
System.IO.MemoryStream ms1 = new System.IO.MemoryStream();
kep1.Save(ms1, System.Drawing.Imaging.ImageFormat.Png);
System.IO.MemoryStream ms2 = new System.IO.MemoryStream();
kep2.Save(ms2, System.Drawing.Imaging.ImageFormat.Png);
int i = 0;
int j = 0;
System.IO.BinaryReader br1 = new System.IO.BinaryReader(ms1);
System.IO.BinaryReader br2 = new System.IO.BinaryReader(ms2);
br1.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
br1.BaseStream.Seek(0, System.IO.SeekOrigin.Current);
br2.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
br2.BaseStream.Seek(0, System.IO.SeekOrigin.Current);
try
{
do
{
i = br1.ReadByte(); j = br2.ReadByte();
if (i != j) break;
} while (i != -1 && j != -1);
}
catch (System.IO.IOException exc)
{
}
br1.Close();
br2.Close();
if (i != j)
return false;
else
return true;
}
Mondjuk nagyobb méretű képeknél a MemoryStream helyett lehet FileStream. Lassab, de kevésbé memóriafaló.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- BESZÁMÍTÁS! Gigabyte M27UA 27 160Hz IPS UHD 4K 1ms monitor garanciával hibátlan működéssel
- Eredeti, új Lenovo 330W töltők - ADL330SDC3A
- Samsung Galaxy A23 5G / 4/128GB / Kártyafüggetlen / 12 Hó Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Apple iPhone 13 / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku:100%
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



