Die kurze Frage ist: Was ist die Formel, um Pixelwerte in einem CVPixelBuffer
zu adressieren?Wie adressiere ich die Pixel in einem CVPixelBuffer richtig?
Ich versuche, eine CVPixelBuffer
in einem flachen Byte-Array zu konvertieren und bemerkte ein paar seltsame Dinge: Die CVPixelBuffer
wird von einem CMSampleBuffer
erhalten. Es ist Breite und Höhe 852x640
Pixel. In Summe 545280
Pixel, die 2181120
Bytes unter Berücksichtigung 4
Bytes pro Pixel erfordern würde.
Nun ist die erste seltsame Sache, dass das gleiche CVPixelBuffer
3456
Bytes pro Zeile zurückgibt, die genug Platz für 864
Pixel ist. Woher kommen die zusätzlichen 12
Pixel? Wenn eine Zeile im endgültigen Bild nur 852
Pixel breit ist, aber es gibt tatsächlich 864
Pixel in einer Reihe von CVPixelBuffer
, woher weiß ich, welche Bytes kopiert werden müssen? Oder welche dieser Bytes sind unbenutzt? Übrigens, sind sie nicht benutzt? Eine andere Sache ist die Datengröße berichtet CVPixelBuffers
, die 2211848
Bytes ist. Wenn wir jetzt die 3456
Bytes pro Zeile mit 640
Zeilen multiplizieren, werden wir bei 2211840
Bytes enden. Also noch einmal, wir bleiben mit 8
zusätzlichen Bytes. Was ist los mit diesen 8
Bytes? Sind sie nicht benutzt? Sind sie am Ende?
Jeder Rat, der etwas Licht in diese Angelegenheit bringt, ist willkommen, Danke.