引用第2楼lugaideath于2009-11-28 11:40发表的 :
我知道,会变成png格式,但只要你试下就会发现
例如pixmap保存的图片大小为2*1024个字节,如果用QDataStream转成QByteArray后,QByteArray的大小为2*1024+4个字节的
哦,看了一下,是有这个现象。手册中是这么说的:
QDataStream & operator<< ( QDataStream & stream, const QPixmap & pixmap )
Writes the given pixmap to the given stream as a PNG image. Note that writing the stream to a file will not produce a valid image file.
See also QPixmap::save()
具体说来,
stream << pixmap
实际上是
stream << pixmap.toImage()
对于QImage,
如果 image 是一个 null image
那么
stream << (qint32)0
反之
stream << (qint32)1<<imagedata
如果你不想要这4个字节,最好还是用QPixmap 的save
当然你用DataStream 的话,可以直接去掉前面4个字节
(但有一点,DataStream是不断演化的,新老版本行为不完全相同,也不能保证以后的版本前面就是这么加4个字节)
[ 此帖被dbzhang800在2009-11-28 13:07重新编辑 ]