2017-06-22 2 views
1

Kann mir jemand erklären, wie es Zeile und Spalte berechnet?Schrittfunktion in C#

byte[] pixel = new byte[img.Stride * img.Height]; 
for (l=0; l< pixel.Length -4;l+=4) 
{ 
    row= l/img.Stride; 
    column=(l% img.Stride)/4; 
.... 
} 
+0

es ist mir unklar, was Sie fordern, aber vielleicht diese Seite auf Bild Stride wird Ihnen helfen : https://msdn.microsoft.com/en-us/library/windows/desktop/aa473780(v=vs.85).aspx –

Antwort

0

Sie die Verbindung beziehen, c# scan0 and stride

Stride:

Der Schritt die Breite einer einzelnen Reihe von Pixeln (a-Scan-Linie), gerundet mit einer Vier- bis Bytegrenze. Wenn der Schritt positiv ist, ist die Bitmap von oben nach unten. Wenn der Schritt negativ ist, ist die Bitmap von unten nach oben.

Wenn Sie von einer Zeile zur nächsten wechseln möchten, müssen Sie den Schritt der Adresse der Zeile hinzufügen, die Sie gerade betrachten. Zeilen werden an 4-Byte-Grenzen ausgerichtet, sodass alle Arten von Code effizienter darauf zugreifen können. (Verschiedene Operationen in CPUs optimiert auf 4 Byte oder 8-Byte-Grenzen zu arbeiten.)

Danke, Christo