Vergleich von .jpg Dateien

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe mir von jemanden eine Klasse zum Vergleichen von .jpg Dateien programmieren lassen.
Diese Klasse konnte ich sinnvoll in mein Programm integrieren.
Es funktioniert an meinem PC zu Hause optimal. Aber am Rechner meines Vaters funktioniet es nicht.
Ich arbeite mit der selben Netbeans Plattform.
Das Programm leisete folgendes:
es speichert die zuletzt gefallene Nummer eines Onlinecasinoroulette als .jpg. Diese Datei wird mit allen anderen schon gespeicherten Bildern verglichen und wenn sich die Bilder gleichen, erkennt er, welche Nummer gefallen ist.
Hier Ausschnitte des Programms:
Irgendwo ist der Wurm drin.
Über Hilfe würde ich mich sehr freuen.

Code:
class AbhoererZiehen implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
                       try{
                      // screenshot in ein BufferedImage schreiben:
                      BufferedImage screenshot=(new Robot()).createScreenCapture(new Rectangle(15,190,32,8));
                      // in die Datei test.jpg schreiben:	            
                      OutputStream out=new BufferedOutputStream(new FileOutputStream("d:\\Ahrens\\Java\\bgp\\Aufnahme.jpg"));
                      JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
                      encoder.encode(screenshot) ;
                      out.close() ;
                }
                catch (Exception exc) {exc.printStackTrace();}

                try{
                    holen=gv.start_Vergleich();}
                catch (Exception ex){
                System.out.println(ex.getMessage());
                }
                String[] vergleich=new String[37];
                for(int i=0;i<37;i++){
                    vergleich[0]="00.jpg";vergleich[1]="01r.jpg";vergleich[2]="02s.jpg";vergleich[3]="03r.jpg";vergleich[4]="04s.jpg";vergleich[5]="05r.jpg";vergleich[6]="06s.jpg";vergleich[7]="07r.jpg";vergleich[8]="08s.jpg";vergleich[9]="09r.jpg";vergleich[10]="10s.jpg";vergleich[11]="11s.jpg";vergleich[12]="12r.jpg";vergleich[13]="13s.jpg";vergleich[14]="14r.jpg";vergleich[15]="15s.jpg";vergleich[16]="16r.jpg";vergleich[17]="17s.jpg";vergleich[18]="18r.jpg";vergleich[19]="19r.jpg";vergleich[20]="20s.jpg";vergleich[21]="21r.jpg";vergleich[22]="22s.jpg";vergleich[23]="23r.jpg";vergleich[24]="24s.jpg";vergleich[25]="25r.jpg";vergleich[26]="26s.jpg";vergleich[27]="27r.jpg";vergleich[28]="28s.jpg";vergleich[29]="29s.jpg";vergleich[30]="30r.jpg";vergleich[31]="31s.jpg";vergleich[32]="32r.jpg";vergleich[33]="33s.jpg";vergleich[34]="34r.jpg";vergleich[35]="35s.jpg";vergleich[36]="36r.jpg";
                    if(holen.equals(vergleich[i]))
                        z1=i;
                }

Code:
public class GifVergleich
{
  public GifVergleich(){}
  
  /**
   * Selbst test der Klasse
   * @param args
   * @throws Exception
   */
  public String start_Vergleich()throws Exception
  {
    String suchfile1 = "d:\\Ahrens\\Java\\bgp\\Aufnahme.jpg";
    GifVergleich gifVergleich1 = new GifVergleich("d:\\Ahrens\\Java\\bgp");
    //System.out.println("Datei : " + suchfile1 + " exisiert im Ornder ?" + gifVergleich1.isGifVorhanden(suchfile1));
    
    String return_value=new String();
    return_value=gifVergleich1.isGifVorhanden(suchfile1);
    return return_value;
  }

  private final Hashtable vorhandeneDateien = new Hashtable();

  /**
   * Legt eine neue Instanz der Klasse an.
   * @param dataSource Verzeichniss mit den vorhandenen Dateien
   * @throws Exception
   */
  public GifVergleich(String dataSource) throws Exception
  {
    File dir = new File(dataSource);

    // Wenn File nicht exisitiert .... nicht gut ! :-)
    if(!dir.exists())
      throw new Exception("Verzeichnis existiert nicht.");

    // wenn kein Verzeichnis ..... garnicht gut ! :-)
    if(!dir.isDirectory())
      throw new Exception("Datenquelle ist kein Verzeichnis.");

    // Alle dateien im Verzeichniss holen.
    File[] dateien = dir.listFiles();
    for (int i = 0; i < dateien.length; i++)
    {
      // Wenn keine Datei dann nächstes File.
      if(!dateien[i].isFile()) continue;
      // Wenn kein GIF dann nächstes File
      if(!dateien[i].getAbsolutePath().toLowerCase().endsWith(".jpg")) 
continue;
      // Checksumme berechnen und in einen Set Speichern
      vorhandeneDateien.put(getMD5CheckSum(dateien[i]),dateien[i].getName());
    }
  }

  /**
   * Berechnet die Checksumme zu einer Datei
   * @param f Datei
   * @return Zeichenkette mit der Checksumme
   */
  private String getMD5CheckSum(File f)
  {
    try {
      // Inputstream ---> Rohdaten der Datei
      FileInputStream fis = new FileInputStream(f);
      byte[] buffer = new byte[1024];
      MessageDigest md = MessageDigest.getInstance("MD5");
      // Daten in den Algo schieben.
      for(int i = fis.read(buffer); i >= 0; i = fis.read(buffer))
      {
        md.update(buffer);
      }
      fis.close();
      //Checksumme zurück geben
      return new String(md.digest());
    }
    catch (IOException ex)
    {
      return null;
    }
    catch (NoSuchAlgorithmException ex)
    {
      return null;
    }
  }

  /**
   * Eine Datei auf das vorhandensein in dem Datenverzeichnis 
überprüfen.
   * @param dateiname Dateiname mit dem Absoluten Pfad
   * @return wahr wenn die datei schon in dem Verzeichniss ist.
   * @throws Exception
   */
  public String isGifVorhanden(String dateiname) throws Exception
  {
    File f = new File(dateiname);
    if(!f.exists())
      throw new Exception("Datei existiert nicht.");
    String md5code = getMD5CheckSum(f);
    return(String)this.vorhandeneDateien.get(md5code);
  }
}
 

Caffè Latte

Bekanntes Mitglied
Hi,

wenn ein Javaprogramm "nicht funktioniert", dann wird eine Exception geworfen. Wenn du die mal posten könntest mit dem dazugehörigen Code, würde das uns - den kostenlosen Debuggern - die unbezahlte Arbeit erleichtern. ;)
 
G

Gast

Gast
Hi Caffè Latte,
Ich bekomme beim Compelieren keine Fehlermeldung.
Die Application wird gestartet. Und wenn ich den Button druecke, dann bekomme ich auch keine Fehlermeldung.
Was er allerdings funktioniert, ist das erstellen der "Aufnahme.jpg".
Und wenn z.B die 26 gefallen ist und ich die schon gespeicherten Vergleichsbilder mit diesem Bild "26" update, dann gibt er mir die 26 aus. Aber nur dann. Es ist so, als wenn die gespeicherte "Aufnahme.jpg" immer verschieden ist. Aber dem ist nicht so.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Vorschläge, effizientes Hashing von Dateien für vergleich Allgemeine Java-Themen 7
W Vergleich eines Datenträgers auf neue Dateien Allgemeine Java-Themen 14
Neumi5694 double Vergleich Allgemeine Java-Themen 19
M Vergleich C# und Java Allgemeine Java-Themen 24
D Vergleich OracleJDK/OpenJDK Allgemeine Java-Themen 7
T Komplexitätsoptimierung String vergleich Allgemeine Java-Themen 4
T If Vergleich ergibt nicht das richtige Ergebnis Allgemeine Java-Themen 2
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
E Problem mit Array vergleich Allgemeine Java-Themen 4
M Vergleich (unscharf) von Screenshots Allgemeine Java-Themen 0
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
S BufferedImage vergleich mit Subimage Allgemeine Java-Themen 1
Z Vergleich zwischen int und Object Allgemeine Java-Themen 1
M Datums vergleich klappt überhaupt nicht.. Allgemeine Java-Themen 4
S Calendar vergleich Allgemeine Java-Themen 2
G Zeilenweiser Vergleich Allgemeine Java-Themen 10
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
P J-Unit vergleich von 2 Objekten merkwürdig Allgemeine Java-Themen 7
K GUI-Button Inhalte vergleich - TicTacToe Grundriss Allgemeine Java-Themen 11
N Vergleich von generischen Typen Allgemeine Java-Themen 2
S String-Vergleich in if Allgemeine Java-Themen 7
P JNA - JNI - pures Java - Vergleich Allgemeine Java-Themen 6
I Vergleich zweier Felder Allgemeine Java-Themen 3
M Vergleich von TreeSet<HashSet>^2 Allgemeine Java-Themen 8
F Vergleich zweier Listen Allgemeine Java-Themen 4
U Java Performance im Vergleich zu C++ in speziellem Anwendungsfall Allgemeine Java-Themen 6
D Was ist schneller? Zuweisung oder Vergleich? Allgemeine Java-Themen 18
O String NICHT vergleich Allgemeine Java-Themen 7
I vergleich und zählen von Strings Allgemeine Java-Themen 7
K Vergleich von Icons . Allgemeine Java-Themen 8
N vergleich mit while und for schleife Allgemeine Java-Themen 7
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
minzel String in String (Vergleich) Allgemeine Java-Themen 2
J vergleich zweier datenstrukturen Allgemeine Java-Themen 6
P Vergleich: Java - .net Allgemeine Java-Themen 5
T Vergleich von Tastatureingabe mit dem was in der Datei steht Allgemeine Java-Themen 21
N Split -> IF-String vergleich Allgemeine Java-Themen 5
N Vergleich zweier Hashtable / mehrere Enumerations Allgemeine Java-Themen 7
C Performance Vergleich, Java vs. Tcl/Tk Allgemeine Java-Themen 3
B bit vergleich oder regex Allgemeine Java-Themen 1
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Unterschiedliche jar Dateien zusammen führen Allgemeine Java-Themen 8
A Sicheres Löschen von Dateien Allgemeine Java-Themen 7
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
Master3000 Dateien zwischen verschiedenen Netzwerken senden Allgemeine Java-Themen 17
L Jar Dateien in Classpath laden ab JDK 9+ Allgemeine Java-Themen 11
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
L Dateien richtig auslesen Allgemeine Java-Themen 6
L Eclipse Runnable Jar mit Dateien Allgemeine Java-Themen 8
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
MiMa Logging mit log4j2 in verschiedene Dateien? Allgemeine Java-Themen 22
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
O jar und EXE Dateien, Pfade zur Laufzeit Allgemeine Java-Themen 1
W Dateien werden nicht gelöscht - warum? Allgemeine Java-Themen 12
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
P Erste Schritte Dateien löschen Allgemeine Java-Themen 4
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
I Java als exe veröffentlichen inkl. kompletter Dateien Allgemeine Java-Themen 4
M Drucken von Dateien Allgemeine Java-Themen 10
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
N Temporäre Dateien Allgemeine Java-Themen 3
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
M Dateien schneller kopieren Allgemeine Java-Themen 1
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
J Programm zum Download von CSV-Dateien Allgemeine Java-Themen 4
V Eclipse .class Dateien Allgemeine Java-Themen 9
B Download von dateien Allgemeine Java-Themen 2
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
C Dateien in Jar aufrufen Allgemeine Java-Themen 14
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
JavaWolf165 Externe .jar-Dateien in .jar-Datei intigrieren Allgemeine Java-Themen 0
X Dateien für Benutzer Sperren Allgemeine Java-Themen 4
D Dateien aus den Internet herunterladen Allgemeine Java-Themen 6
L Methoden Dateien älter als 30 Tage? Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
RalleYTN Classpath Native Dateien(DLL, SO, JNILIB) Allgemeine Java-Themen 2
J Java .jar Dateien zusammenführen Allgemeine Java-Themen 1
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
F Platzsparende Alternative zu .txt-Dateien Allgemeine Java-Themen 12
X Dateien von der Jar zum Ordner kopieren. Allgemeine Java-Themen 4
Ananaskirsche Input/Output Dateien im Ordner Allgemeine Java-Themen 8
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
X Herunterladen von Dateien aus dem Internet Allgemeine Java-Themen 2
V Input/Output Sound Dateien aus Jar laden Allgemeine Java-Themen 18
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
H PDFBox akzeptiert Dateien nicht Allgemeine Java-Themen 1
B Java - einlesen von Dateien und herausschneiden von XML Dokumenten Allgemeine Java-Themen 5
A Input/Output Spätes Schreiben von Dateien der JVM Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben