Hi,
Ich hab früher auch öfters was mit Graphik gemacht.
Das schlechteste dabei ist, fremde Bild-Klassen zu benutzen.
z.b.:
farbe1 = cImage1.GetPixel(x,y);
Ich kenn mich mit CImage nicht aus, aber ich vermute, dass es "COLORREF GetPixel(HDC hdc, int XPos, int nYPos);"
benutzt.
Was nun colorref genau macht ist nicht dokumentiert, aber vielleicht ruft es noch diverse andere Functionen auf, die was auch immer sinnloses machen.
Das ist vieeel zu langsam!
Benutze möglichst eigene Image Klassen(eine Klasse die die rgb Daten roh, in einem langen array verarbeitet ist so ziemlich am schnellsten, als einfache Softwarelösung).
Dann könntest du statt getpixel etwas in der Art verwenden:
BYTE *array=LoadMyPic....;
r=array[x*3+(y*3*pixwidth)+2];
// in bitmaps werden die Farbdaten als BGR gespeichert
g=array[x*3+(y*3*pixwidth)+1];
b=array[x*3+(y*3*pixwidth)+0];
.... Das war jetzt nur ein Vorschlag, wie du es wirklich machst ist natürlich dir überlassen. Das war jetzt eine simple Verbesserung, aber wenn du das noch schneller willst, musst du dich damit wohl genauer auseinandersetzen...
MfG Alex
Lesezeichen