Witam,mam problem z wykorzystaniu wskaźników podczas optymalizacji dostępu do bitmapy.Chciałem napisać programik wyselekcjonowywujący składową R z bitmapy RGB,tzn wyzerować składowe G i B.Mam programik, który realizuje podobna kwestie, tzn robi negatyw,może mi ktoś pomoć go przerobić,bo jest to pewnie kwestia przerobienia wskaźnika w pętli,tam gdzie go pogrubiłem.Dzięki za pomoc.Pisze w srodowisku Visial Studio 2005 w C#.Wklejam kod
bmp_r = new Bitmap(bmp);
Rectangle rect = new Rectangle(0, 0, bmp_r.Width, bmp_r.Height);
BitmapData bmp_rData = bmp_r.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int stride = bmp_rData.Stride;
IntPtr Scan0 = bmp_rData.Scan0;
unsafe
{
byte* ptr = (byte*)(void*)Scan0;
int nOffset = stride - bmp_r.Width * 3;
int nWidth = bmp_r.Width * 3;
for (int y = 0; y < bmp_r.Height; ++y)
{
for (int x = 0; x < nWidth; ++x)
{
<b>ptr[0] = (byte)(255 - ptr[0]);</b>
++ptr;
}
ptr += nOffset;
}
bmp_r .UnlockBits(bmp_rData);
}