Closed ZgblKylin closed 7 years ago
const auto &&headData = jqicFile.read( sizeof( ImageInformationHead ) ); memcpy( &imageInformationHead, headData.constData(), sizeof( ImageInformationHead ) );
这两行代码可以简化为
jqicFile.read( reinterpret_cast<char*>( &imageInformationHead ), sizeof( ImageInformationHead ) );
实现类似placement new的效果,就地读取数据,节约一次memcpy的开销。
另外,我本来想着是否可以考虑使用QDataStream本身的序列化功能,但查询文档后得知,QImage序列化时是根据图像原始类型,保存为png或bmp。而如果要自己指定格式,则需要通过QBuffer+QImageIOHandler+QImageIOPlugin才行,这样的话反没手动处理来的简便了
谢谢你的建议,我马上去修改到develop分支中
已经修改完成,并且合并到了master分支
这两行代码可以简化为
实现类似placement new的效果,就地读取数据,节约一次memcpy的开销。
另外,我本来想着是否可以考虑使用QDataStream本身的序列化功能,但查询文档后得知,QImage序列化时是根据图像原始类型,保存为png或bmp。而如果要自己指定格式,则需要通过QBuffer+QImageIOHandler+QImageIOPlugin才行,这样的话反没手动处理来的简便了