您好我尝试将一个字节数组转换为一个Image但是每次我得到一个空图像时,有人可以帮我吗?
QImage image("p.jpg");
qDebug()<<image;
QImage image2;
QByteArray paquet2;
QDataStream out2(&paquet2, QIODevice::WriteOnly);
out2 << image;
qDebug()<<image2.fromData(paquet2,"jpg");
qDebug 1结果:QImage(Qsize(500,500))
qDebug 2结果:QImage(Qsize(0,0))
答案 0 :(得分:1)
fromData()
是一种静态方法。
请尝试image2.loadFromData(paquet2)
或QImage::fromData(paquet2)
。
我注意到一些非常奇怪的东西,这段代码按预期工作:
QImage img("...");
QByteArray data;
QBuffer buff(&data);
QDataStream out(&buff);
out << img;
qDebug() << QImage::fromData(data);
但是它会警告IODevice
没有打开。
如果我手动buff.open()
,fromData()
会再次生成空图像。
如果没有明确打开,openMode()
会自动设置为Unbuffered | WriteOnly
,如果我open()
明确地Unbuffered | WriteOnly
它不起作用,它就会有效。去图......