188080501 / JQQmlImage

QML中Image控件升级版,利用预解码和预读取,提升图片加载速度
143 stars 47 forks source link

jqqmlimagemanage.cpp : 90 #3

Closed ZgblKylin closed 7 years ago

ZgblKylin commented 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才行,这样的话反没手动处理来的简便了

188080501 commented 7 years ago

谢谢你的建议,我马上去修改到develop分支中

188080501 commented 7 years ago

已经修改完成,并且合并到了master分支