gpt4 book ai didi

qt - 如何在Qt中将QPixmap转换为base64 QString?

转载 作者:行者123 更新时间:2023-12-02 03:26:34 25 4
gpt4 key购买 nike

我正在使用 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呢?

最佳答案

试试这个;

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

关于qt - 如何在Qt中将QPixmap转换为base64 QString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com