【问题标题】:How to convert QPixmap to base64 QString in Qt? [duplicate]如何在 Qt 中将 QPixmap 转换为 base64 QString? [复制]
【发布时间】:2018-11-07 22:56:00
【问题描述】:

我将 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());

但它返回错误:

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 呢?

【问题讨论】:

    标签: qt base64 qstring qpixmap


    【解决方案1】:

    试试这个;

     QBuffer buffer;
     buffer.open(QIODevice::WriteOnly);
     pix.save(&buffer, "PNG");
     auto const encoded = buffer.data().toBase64();
    

    【讨论】:

    • 它说“错误:'QBuffer'没有在这个范围QBuffer缓冲区中声明;”应该为QBuffer插入哪个头? ^
    • @nocturnal_abu 使用#include &lt;QBuffer&gt;
    • 添加#include 编译和工作就像一个魅力。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2016-10-20
    • 2013-03-10
    相关资源
    最近更新 更多