【发布时间】:2014-12-11 13:29:21
【问题描述】:
我可以通过QByteArray发送和获取QPixmap:
QPixmap pixmap1;
QByteArray rawPixels;
QBuffer buffer(&rawPixels);
buffer.open(QIODevice::WriteOnly);
pixmap1.save(&buffer, "PNG");
QPixmap pixmap2;
pixmap2.loadFromData(rawPixels,"PNG");
但我必须使用std::vector<unsigned char> 发送我的像素图:
std::vector<unsigned char> vector;
int size = rawPixels.size();
char* temp = (char*) rawPixels.constData();
vector.resize(size);
for(int index = 0; index < size; index++)
{
vector.push_back(temp[index]);
}
有没有从std::vector<unsigned char> 获取QPixmap 的简单方法?
【问题讨论】:
-
您可以尝试将 vector.data() 转换为 const uchar*。这不是很好,但它应该可以工作。
-
在执行此操作时,请为自己节省一些行和一个循环。
std::vector<unsigned char> v(rawPixels.constData(), rawPixels.constData()+rawPixels.size());可能更喜欢在手动 for 循环中手动执行此操作,除非您有充分的理由不这样做。
标签: c++ vector type-conversion qpixmap qbytearray