Hallo,
danke erstmal für die Antworten. Allerdings muss ich euch widersprechen: Der unsafe Code ist sogar einen Hauch langsamer als der bisherige ...
Wenn ich den Profiler richtig bedient (und verstanden) habe, sind die Engpässe vor allem die Zeilen:
Code:
Image img = Image.FromFile(Files[index].FullName); // 49% der Zeit
Bitmap bmp = new Bitmap(img); // 24% der Zeit
if (rgbValues[i] == col) // Das was er eigentlich machen soll: 13% der Zeit
Aber ich sehe da (leider) nicht viel Einsparpotenzial ...
-------------------------------------------------------------------------
Okay, hat sich erledigt. Ich habe die ersten beiden Engpässe zusammengelegt (Bitmap Konstruktor mit Dateiname akzeptiert auch jpeg und png) sowie die Verarbeitung an die Fartiefe angepasst. (24bit oder 32bit) (vorher immer nach 32 bit konvertiert)
Damit (und dank des Threadpools+Quadcore) läuft das Programm auf meiner Testmenge (100 jpegs, 300 MB) in unter 10 Sekunden durch.