Verwendung von ScriptIntrinsicYuvToRGB (Konvertieren von byte [] yuv in byte [] rgba)

8

Ich habe byte[] yuvByteArray (540x360 Bild von Camera.PreviewCallback.onPreviewFrame Methode erfasst und in assets/yuv.bin Datei ausgegeben). Ich möchte byte[] yuv in byte[] rgba array konvertieren, indem ich den folgenden Code benutze (basierend auf LivePreview android Beispiel).

Aber ich bekomme outBytes rgba Array mit Nullen nach forEach gefüllt und out allocation nach outBytes kopiert. Was ist falsch an meinem Code?

%Code%     
wilddev 03.12.2013, 18:25
quelle

4 Antworten

10

yuv.bin-Datei ist definitiv im NV21-Format, da es hier erfasst Ссылка

setYuvFormat Methode ist von API-Ebene 18, ich habe es

entfernt

Also dieser Code funktioniert gut:

%Vor%     
wilddev 03.12.2013, 19:50
quelle
1

Unsere interne Test-App verwendet die folgende Sequenz, um die YUV-Zuweisung zu erstellen.

%Vor%

Dann innerhalb des Callbacks, dass neue YUV-Daten verfügbar sind, tun Sie

%Vor%     
R. Jason Sams 03.12.2013 22:07
quelle
1

Die Verwendung von API18 + wilddev kann leicht verbessert werden, da Sie keine Type.Builder-Objekte benötigen. Mach all diese Sachen in der onCreate () Methode:

%Vor%

Jetzt können Sie mit diesen Zeilen oder fortfahren und sie in die onPreviewFrame () Methode einfügen:

%Vor%     
Matti81 21.04.2017 19:58
quelle
0

Ändern Sie den Ausgabetyp, der an den Konstruktor von ScriptIntrinsicYubToRGB übergeben wurde, an Element.U8_4 anstelle von Element.RGBA_8888 . Sie benötigen dasselbe für das Type.Builder , das zum Erstellen der Ausgabe Allocation verwendet wurde.

    
Larry Schiefer 03.12.2013 18:45
quelle

Tags und Links