Qt中如何将QPixmap转换为base64 QString?
How to convert QPixmap to base64 QString in Qt?
我将 QT 5.7 用于必须将 QPixmap 转换为 base64 QString 格式的程序。我尝试先将 QPixmap 转换为 cv::Mat,然后添加我现有的转换流程。
Qpixmap pix;
cv::Mat pixData(pix.rows(),pix.cols(),CV_8UC3,pix.scanline());
std::vector<uchar> IMbuffer;
cv::imencode(".png", pixData, IMbuffer);
QByteArray byteArray = QByteArray::fromRawData((const char*)IMbuffer.data(), IMbuffer.size());
QString base64Image(byteArray.toBase64());
但是returns错误:
error: 'class QPixmap' has no member named 'rows'
cv::Mat pixData(pix.rows(),pix.cols(),CV_8UC3,pix.scanline());
^
所以很明显,从 QPixmap 到 cv::Mat 的这种转换是不兼容的。那么有什么简单的方法可以将QPixmap转换为base64 QString吗?
试试这个;
QBuffer buffer;
buffer.open(QIODevice::WriteOnly);
pix.save(&buffer, "PNG");
auto const encoded = buffer.data().toBase64();
我将 QT 5.7 用于必须将 QPixmap 转换为 base64 QString 格式的程序。我尝试先将 QPixmap 转换为 cv::Mat,然后添加我现有的转换流程。
Qpixmap pix;
cv::Mat pixData(pix.rows(),pix.cols(),CV_8UC3,pix.scanline());
std::vector<uchar> IMbuffer;
cv::imencode(".png", pixData, IMbuffer);
QByteArray byteArray = QByteArray::fromRawData((const char*)IMbuffer.data(), IMbuffer.size());
QString base64Image(byteArray.toBase64());
但是returns错误:
error: 'class QPixmap' has no member named 'rows'
cv::Mat pixData(pix.rows(),pix.cols(),CV_8UC3,pix.scanline());
^
所以很明显,从 QPixmap 到 cv::Mat 的这种转换是不兼容的。那么有什么简单的方法可以将QPixmap转换为base64 QString吗?
试试这个;
QBuffer buffer;
buffer.open(QIODevice::WriteOnly);
pix.save(&buffer, "PNG");
auto const encoded = buffer.data().toBase64();