27. december 2005 - 01:10
Der er
6 kommentarer
Billed sammenligning
Hvordan kan jeg i java sammenligne 2 billeder for at se om de er ens ?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
27. december 2005 - 10:19
#1
Hvis du har billederne som filer kan du åbme dem som bytestreams of sammenligne byte for byte. eller udregne en checksum på dem og se om den er ens (ikke 100% sikkert, men 99,9999% sikkert er som regel godt nok).
27. december 2005 - 11:57
#2
Okay, vil lige prøve på den måde. Hvis det virker smider jeg lige nogen point af til dig :D
27. december 2005 - 22:58
#3
hvis du vil sammenligne på et højere niveau om billedet forestiller det samme, så er det en meget vanskelig opgave
27. december 2005 - 23:04
#4
Billederne er 100% identiske, kunne bare godt bruge lidt kode eksempel.
27. december 2005 - 23:31
#5
lidt hurtigt sammenbikset kode: package december; import java.io.*; public class FileDiff { public static boolean identical(String fnm1, String fnm2) throws IOException { long flen1 = (new File(fnm1)).length(); long flen2 = (new File(fnm2)).length(); if(flen1 != flen2) return false; InputStream is1 = new FileInputStream(fnm1); InputStream is2 = new FileInputStream(fnm2); byte[] b1 = new byte[100000]; byte[] b2 = new byte[100000]; for(;;) { int n1 = is1.read(b1); int n2 = is2.read(b2); if(n1 != n2) return false; if(n1 < 0) break; for(int i = 0; i < n1; i++) if(b1[i] != b2[i]) return false; } return true; } public static void main(String[] args) throws Exception { System.out.println(identical("C:\\a.jpg", "C:\\b.jpg")); System.out.println(identical("C:\\b.jpg", "C:\\b.jpg")); } }
12. marts 2006 - 05:56
#6
Tid at få afsluttet her ?
Kurser inden for grundlæggende programmering