J'ai un problème avec Lockbits. Je recherche des pixels noirs, et parce que cela ne me semble pas correct, j'utilise un WindowPopup pour imprimer les couleurs de chaque pixel, mais c'est comme si mon programme utilisait une autre image.Utiliser Lockbits pour rechercher des pixels noirs, mais est-ce au hasard?
alt text http://i208.photobucket.com/albums/bb91/Savaronna/pixel-1.jpg?t=1234874238
I a marqué le premier pixel noir rouge trouvé. Comme vous pouvez le voir, il y a plusieurs autres pixels qui devraient correspondre. Qu'est-ce que je fais mal?
Ceci est mon script, est-ce que je supervise quelque chose?
Bitmap b = this.TableListBMP;
BitmapData bmpData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height),
ImageLockMode.ReadWrite,
PixelFormat.Format32bppPArgb);
int stride = bmpData.Stride;
IntPtr Scan0 = bmpData.Scan0;
unsafe
{
byte * p = (byte *)(void *)Scan0;
int nOffset = bmpData.Stride - b.Width*4;
int xOffset, yOffset;
for(int y=5; y<b.Height; ++y)
{
for(int x=1; x<b.Width; ++x)
{
MessageBox.Show(
string.Format("x={0}, y={1}, ARGB={2},{3},{4},{5}",
x, y,
Convert.ToString(p[(y*stride)+(x*4)]),
Convert.ToString(p[(y*stride)+(x*4)+1]),
Convert.ToString(p[(y*stride)+(x*4)+2]),
Convert.ToString(p[(y*stride)+(x*4)+3])));
p +=4;
}
// EDIT: This line should be removed
p += nOffset;
}
}
b.UnlockBits(bmpData);
je veux juste vous faire savoir, j'ai supprimé la partie p + = et cela fonctionne. Merci pour votre aide – Sven