QVideoFrame转QImage格式对照表

主要为通过查询QVideoFrame::imageFormatFromPixelFormat接口获得QImage格式对照表。

对照表

  • Format_ARGB32
  • Format_ARGB32_Premultiplied
  • Format_RGB32
  • Format_RGB24
  • Format_RGB565
  • Format_RGB555
  • Format_ARGB8565_Premultiplied
  • Format_BGRA32
  • Format_BGRA32_Premultiplied
  • Format_BGR32
  • Format_BGR24
  • Format_BGR565
  • Format_BGR555
  • Format_BGRA5658_Premultiplied
  • Format_AYUV444
  • Format_AYUV444_Premultiplied
  • Format_YUV444
  • Format_YUV420P
  • Format_YV12
  • Format_UYVY
  • Format_YUYV
  • Format_NV12
  • Format_NV21
  • Format_IMC1
  • Format_IMC2
  • Format_IMC3
  • Format_IMC4
  • Format_Y8
  • Format_Y16
  • Format_Jpeg
  • Format_CameraRaw
  • Format_AdobeDng
  • NPixelFormats
  • Format_User

判断代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <QApplication>
#include <QVideoFrame>
#include <QDebug>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QList<QImage::Format> imageFormats = {
QImage::Format_Invalid,
QImage::Format_Mono,
QImage::Format_MonoLSB,
QImage::Format_Indexed8,
QImage::Format_RGB32,
QImage::Format_ARGB32,
QImage::Format_ARGB32_Premultiplied,
QImage::Format_RGB16,
QImage::Format_ARGB8565_Premultiplied,
QImage::Format_RGB666,
QImage::Format_ARGB6666_Premultiplied,
QImage::Format_RGB555,
QImage::Format_ARGB8555_Premultiplied,
QImage::Format_RGB888,
QImage::Format_RGB444,
QImage::Format_ARGB4444_Premultiplied,
QImage::Format_RGBX8888,
QImage::Format_RGBA8888,
QImage::Format_RGBA8888_Premultiplied,
QImage::Format_BGR30,
QImage::Format_A2BGR30_Premultiplied,
QImage::Format_RGB30,
QImage::Format_A2RGB30_Premultiplied,
QImage::Format_Alpha8,
QImage::Format_Grayscale8,
QImage::NImageFormats
};

QList<QVideoFrame::PixelFormat> pixelFormats = {
QVideoFrame::Format_Invalid,
QVideoFrame::Format_ARGB32,
QVideoFrame::Format_ARGB32_Premultiplied,
QVideoFrame::Format_RGB32,
QVideoFrame::Format_RGB24,
QVideoFrame::Format_RGB565,
QVideoFrame::Format_RGB555,
QVideoFrame::Format_ARGB8565_Premultiplied,
QVideoFrame::Format_BGRA32,
QVideoFrame::Format_BGRA32_Premultiplied,
QVideoFrame::Format_BGR32,
QVideoFrame::Format_BGR24,
QVideoFrame::Format_BGR565,
QVideoFrame::Format_BGR555,
QVideoFrame::Format_BGRA5658_Premultiplied,

QVideoFrame::Format_AYUV444,
QVideoFrame::Format_AYUV444_Premultiplied,
QVideoFrame::Format_YUV444,
QVideoFrame::Format_YUV420P,
QVideoFrame::Format_YV12,
QVideoFrame::Format_UYVY,
QVideoFrame::Format_YUYV,
QVideoFrame::Format_NV12,
QVideoFrame::Format_NV21,
QVideoFrame::Format_IMC1,
QVideoFrame::Format_IMC2,
QVideoFrame::Format_IMC3,
QVideoFrame::Format_IMC4,
QVideoFrame::Format_Y8,
QVideoFrame::Format_Y16,

QVideoFrame::Format_Jpeg,

QVideoFrame::Format_CameraRaw,
QVideoFrame::Format_AdobeDng,

QVideoFrame::NPixelFormats,
QVideoFrame::Format_User
};

for (int i = 0 ; i < pixelFormats.count(); i++) {
QImage::Format format = QVideoFrame::imageFormatFromPixelFormat(pixelFormats.at(i));
qDebug()<<"|"<<pixelFormats.at(i)<<"|"<<(format ? "YES" : "NO")<<"|";
}

return app.exec();
}