Saving a QImage to QBuffer
Saving a QImage to QBuffer
我正在做这样的事情:
QImage image(width, height, QImage::Format_RGB32);
frame.fill(QColor(255, 255, 255).rgb());
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
选项1:
out << image;
选项2:
out.writeRawData((char *) image.constBits(), image.byteCount()) ;
选项1相当慢,我不确定选项2是否是正确的方法?
您可以使用QImage::save
直接写入QIODevice
,无论是缓冲区还是文件。
image.save(buffer);
与选项1相比,选项2看起来很恶心;在美学上,我当然更喜欢选项1。但我更喜欢我提到的API,而不是你给出的两个选项。
您可以在这里阅读更多关于图像读写的信息
我刚刚做了类似的事情
QByteArray byteArray;
QBuffer buffer(&byteArray);
image.save(&buffer, "PNG"); // writes the image in PNG format inside the buffer
要输出缓冲区,我将使用QString,我使用它来转换为base64
QString imgBase64 = QString::fromLatin1(byteArray.toBase64().data());
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- "no matching function for call to 'Vector::Vector'"错误
- vector<vector<double>> to mxArray using memcpy
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- 当覆盖存在时调用基本虚拟"binded to object"函数
- OpenGL VBO Indexing ( How to compute Index Array)
- 为什么我会" void value not ignored as it ought to be"?
- Saving a QImage to QBuffer