• 6225阅读
  • 10回复

我将图片以bits记录下来,然后要怎么恢复呢? [复制链接]

上一主题 下一主题
离线lugaideath
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-14
我通过QImage的bits()方法把图片记录在数据库里面

然后我在数据库里面把那串东西取取来后,要还原成一个图片,该怎么做呢?我用QPixmap的方法,因为bits()返回的类型跟QPixmap的load()的参数类型不一致,然后我强转后,不能还原,谁可以提供一个方法啊?

最好给代码
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-14
不如考虑用 QDataStream 吧
离线lugaideath

只看该作者 2楼 发表于: 2009-10-15
还是不行,搞不懂中间的数据类型的转换!可以提供下简单的代码片段吗?
离线dbzhang800

只看该作者 3楼 发表于: 2009-10-15
写入 buffer (为QByteArray类型):
    QByteArray buffer;
    QDataStream bufferStream(&buffer, QIODevice::WriteOnly);
    bufferStream <<yourImage;

从data (为QByteArray类型)读出:

    QDataStream bufferStram(data);
    bufferStram >> neededImage;
离线lugaideath

只看该作者 4楼 发表于: 2009-10-15
现在我是多个图片一起的,那么要怎样呢?
离线lugaideath

只看该作者 5楼 发表于: 2009-10-15
多个图片一起传送,一起还原
离线lugaideath

只看该作者 6楼 发表于: 2009-10-15
多个图片传送,从一个类传到另外一个类,不知道怎么写!!
离线dbzhang800

只看该作者 7楼 发表于: 2009-10-15
写入 buffer (为QByteArray类型):
    QByteArray buffer;
    QDataStream bufferStream(&buffer, QIODevice::WriteOnly);
    bufferStream <<yourImage1<<yourImage2<<yourImage3;

从data (为QByteArray类型)读出:

    QDataStream bufferStram(data);
    bufferStram >> neededImage1>>neededImage2>>needImage3;

如果疑问,请参考 Qt 的 Manual
离线lugaideath

只看该作者 8楼 发表于: 2009-10-15
那么传参的时候就多传一个count了
离线lugaideath

只看该作者 9楼 发表于: 2009-10-15
传过来以后不会提取
void getImage(const QDataStream &imageData)
{
      ??????????????   要怎么提取呢?
}
离线lugaideath

只看该作者 10楼 发表于: 2009-10-15
我自己傻了!解决了!不过效率有点慢
快速回复
限100 字节
 
上一个 下一个