2011-06-01 6 views
2

Est-ce que quelqu'un sait comment accélérer ce travail? Puis-je faire la même chose en utilisant Lockbits?Méthode plus rapide pour faire défiler l'image

for (int y = 0; y < picture.Height; y++) 
{ 
    for (int x = 0; x < picture.Width; x++) 
    { 
     Color colorPixel = picture.GetPixel(x, y); 

     if ((colorPixel.A > 230) && 
      (colorPixel.R < 20) && 
      (colorPixel.G < 20) && 
      (colorPixel.B < 20)) 
      { 
        //do something 
      } 

Merci.

+2

Oui, verrouiller les bits et les regarder directement sera beaucoup plus rapide. L'appel 'GetPixel' sur chaque pixel est très coûteux. –

+1

Oui, vous pouvez utiliser 'LockBits' et ce sera beaucoup plus rapide. Voir: http://www.bobpowell.net/lockingbits.htm. J'ai utilisé ceci dans le passé, et si la mémoire est bonne, 'LockBits' était deux fois plus rapide. –

Répondre

Questions connexes