将字节数组转换为图片

时间:2015-03-29 01:24:42

标签: c++ qt

您好我尝试将一个字节数组转换为一个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))

1 个答案:

答案 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它不起作用,它就会有效。去图......