Also zum Ausschneiden:
Zur Vereinfachung gehen wir davon aus, ein Pixel deiner Bitmap ist ein Byte gross (du kannst das dann einfach anpassen).
Wenn du die Bitmap eingelesen hast, hast du einen Speicherbereich voller BYTE-Werte (*pSrcPixel) und die Auflösung der Bitmap (xSrcRes, ySrcRes). Ausserdem sollte die Auflösung der Ziel-Bitmap bekannt sein (xDestRes, yDestRes) und die Position von welcher du einen Bereich ausschneiden willst (xPos, yPos). Zeichnung zur Veranschaulichung:
KlickMich
Du reservierst zuerst Speicher für die Ziel-Bitmap:
|
C-/C++-Quelltext
|
1
|
BYTE *pDestPixel = new BYTE[xDestRes*yDestRes]
|
Danach kopierst du einfach die einzelnen Pixel aus der Quell-Bitmap in die Ziel-Bitmap:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
for(int y=0; y<yDestRes; y++)
{
for(int x=0; x<xDestRes; x++)
{
pDestPixel[y*yDestRes+x]=pSrcPixel[(y+yPos)*ySrcRes+(x+xPos)];
}
}
|
Achtung: Code nicht getestet!, aber vom Prinzip her müsste es funktionieren.