我正在尝试从 QImage 创建 QByteArray,但是尽管我尝试了很多变体,但我无法处理它。
我正在做的是:
QImage img_enrll; // <--- There is an image coming from another function.
QByteArray arr((char*)img_enrll.bits(),img_enrll.byteCount()); // <-- convertion but I am not sure it is true or not.
funcCheck((unsigned char*)arr.data(), arr.size(), 0, &sam, 1, &n);
virtual Error funcCheck (const uint8_t src[],
size_t src_len,
size_t tout_ms,
IRawSample* dst[],
size_t dst_len,
size_t* dst_n )
但是错误代码是返回无效数据。我认为将 QImage 转换为 QByteArray 是错误的。请你能帮我如何转换为 QByteArray 吗?
最佳答案
你可以这样做:
QImage img_enrll;
QByteArray arr;
QBuffer buffer(&arr);
buffer.open(QIODevice::WriteOnly);
img_enrll.save(&buffer, "yourformat");
写完之后,如果你需要这个来序列化,你最好使用 QDataStream .
关于c++ - 如何将 QImage 转换为 QByteArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27343576/