QImage 有一个构造函数 QImage (uchar *data, int width, int height, int bytesPerLine, Format format),它从现有的内存缓冲区创建一个 QImage。
字节(uchars)的顺序是否取决于平台?如果我将 alpha、red、green 和 blue 的值放入其中并增加索引,则 alpha 与蓝色交换,红色与绿色交换。这表明字节序存在问题。
我现在想知道字节序是否依赖于平台。Qt 文档对此没有任何说明。
如果它不依赖于平台,我只会更改存储值的顺序:
texture[ startIndex + 0 ] = pixelColor.blue();
texture[ startIndex + 1 ] = pixelColor.green();
texture[ startIndex + 2 ] = pixelColor.red();
texture[ startIndex + 3 ] = pixelColor.alpha();
如果它依赖于平台,我将创建一个 uint32 数组,存储计算为 alpha << 24 | 的值 红色 << 16 | 绿色 << 8 | 蓝色,并在将数组传递给 QImage() 构造函数之前 reinterpret_cast 数组。
此致,
延斯