Die Farbe des Videos ist falsch, wenn es aus UIImage der PNG-Dateien erstellt wird

9

Ich nehme ein UIImage aus der Png-Datei und füttere es dem videoWriter.

avAdaptor appendPixelBuffer: pixelBuffer

Wenn das Endergebnis-Video erscheint, fehlt ihm die eine Farbe, die gelbe Farbe oder etwas fehlt.

Ich nehme die Funktion, die den Pixel-Puffer aus dem UIImage gemacht hat,

%Vor%

Ich versuche auch die kCVPixelFormatType_32AGRB und andere, es hat nicht geholfen.

irgendwelche Gedanken?

    
lilzz 25.10.2010, 06:00
quelle

2 Antworten

1

Bitte überprüfen Sie, ob Ihr PNG-Bild mit oder ohne Transparenzelement ist. Wenn Ihr PNG-Bild keine Transparenz enthält, ist es 24-Bit und nicht 32-Bit pro Pixel.

Haben Sie auch kCVPixelFormatType_32RGBA ausprobiert?

    
Usman.3D 21.09.2011 10:45
quelle
0

Vielleicht passen die Bildgrößen nicht zusammen.

Ihr Eingangsbild sollte die gleiche Breite und Höhe wie die Videoausgabe haben. Wenn sich "myWidth" oder "myHeight" von der Größe des Bildes unterscheidet (d. H. Ein anderes Seitenverhältnis), kann ein Byte am Ende der Zeile verloren gehen, was zu einer Farbverschiebung führen könnte. kCVPixelFormatType_32BGRA scheint das bevorzugte (schnellste) Pixelformat zu sein, also sollte dies in Ordnung sein.

Es gibt keine gelbe Farbe im RGB-Farbraum. Dies bedeutet, dass Gelb nur das & gt; Rot & lt; und & gt; grün & lt; Komponenten. Es scheint, dass & gt; blau & lt; fehlt.

Ich nehme an, dass Sie ein CFDataRef (möglicherweise NSData) für das Bild verwenden. Wenn es sich um ein NSData-Objekt handelt, können Sie die Bytes mit

an die Debug-Konsole ausgeben %Vor%

Dies wird einen Hex Dump auf die Konsole ausgeben. Hier können Sie sehen, ob Sie Alpha haben und welche Art von Byte-Reihenfolge Ihr Png ist gleich. Wenn Ihr Bild Alpha hat, sollte jedes vierte Byte dieselbe Nummer sein.

    
JackPearse 12.10.2011 16:00
quelle

Tags und Links