Das ist alles auch nicht weiter DAS Problem. ^^
Hab überlegt, ob ich mir da auch was suche, habs dann aber raus gelassen, weil Fernaless geschrieben hat, die Bilder seien exakt gleich.
Wenn ihr mir etwas Zeit gebt, kann ich auch mal schauen, ob ich ein umfangreicheres Programm dafür baue und das dann auch mehrere Ordner durchsucht, das wärde in der Zeile
PHP:
string[] files = Directory.GetFiles(OrdnerPfad)
nur so geändert werden müssen:
PHP:
string[] files = Directory.GetFiles(OrdnerPfad, "*.*", SearchOption.AllDirectories)
Der erste Parameter ist immer noch der Pfad des Ordners, der Zweite enthält eine Suchzeichenfolge, die ich hier mit "*.*" bezeichne, da der Stern für alle Zeichen steht und so alle Datei-Namen und Endungen akzeptiert werden. Der Dritte Parameter ist ein Wert des Enums SearchOption, welches zwei Konstanten bereit stellt:
- TopDirectoryOnly -> Schließt nur das aktuelle Verzeichnis in einem Suchvorgang ein.
- AllDirectories -> Schließt das aktuelle Verzeichnis und alle Unterverzeichnisse in einem Suchvorgang ein.Diese Option schließt Analysepunkte wie umschlossenes Laufwerk und symbolische Links in der Suche.
Ich würde dann auch eine einfache grafische Oberfläche bauen, aber das kostet dann wieder mehr Zeit.
Auch den Quell-Code würde ich einfügen, damit hab ich kein Problem ^^
Edit:
Hab da jetzt eine Bibliothek gefunden, die da scheinbar ganz gute Funktionen für den ganzen Breiten Themen-Bereich zur Verfügung stellt.
Ich würde zwar versuchen, das alleine zu schreiben, aber je mehr ich darüber lese, um so mehr Respekt bekomme ich auch vor dem Umfang und der Komplexität der Aufgabe
Schöne Diskussion dazu:
http://www.mycsharp.de/wbb2/thread.php?threadid=100695
Dort hab ich auch den Code her, den ich dann für diese Methode verwendet habe:
PHP:
static Bitmap verkleinern(Bitmap image, int width = 25, int hight = 25)
{
Bitmap bmpOutput = new Bitmap (width, hight, PixelFormat.Format24bppRgb);
Graphics gOutput = Graphics.FromImage (bmpOutput);
Rectangle rectOutput = new Rectangle (0, 0, bmpOutput.Width, bmpOutput.Height);
ImageAttributes ia = new ImageAttributes();
ia.SetWrapMode (WrapMode.TileFlipXY);
gOutput.InterpolationMode = InterpolationMode.HighQualityBilinear;
gOutput.PixelOffsetMode = PixelOffsetMode.Half;
gOutput.CompositingMode = CompositingMode.SourceCopy;
gOutput.DrawImage (image, rectOutput, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, ia);
bmpOutput.Save ("output.bmp", ImageFormat.Bmp);
return bmpOutput;
}
Die Methode verkleinert einfach ein Bild, das brauch ich dann für die Bestimmung, ob das Bild zu einem Anderen ähnlich ist. Da bin ich aber noch am knobeln und außerdem brauch ich dafür noch einen Grenz-Wert, der dann angibt, wie verschieden ein Bild zum Anderen sein darf, die Frage ist nur, wo dieser Wert liegt.
Ich schau erst mal, ob ich die Methode hin kriege und würde euch dann bitten, mir beim Ermitteln dieses Wertes zu helfen, dass dabei ein paar Werte heraus kommen, die ich dann ja in ein Enum einbauen kann. Also dann z.B. die Konstanten: NichtÄhnlich, Ähnlich, SehrÄhnlich, Gleich
Oder irgendwie so