我目前正在尝试解压缩 .cbz 文件(基本上是 .zip 文件)并将该 .cbz 文件中包含的所有 .png 图像存储到std::vector<QImage>
.
我正在使用 QuaZip 来执行此操作。我在网上查看了一些示例,并尝试使用 QuaZip 类文档实现一些不同的方法。
这是我目前拥有的代码:
// Store all files for later access given the CBZ file
bool CbzReader::loadCbzFile(QString cbzFile) {
QuaZip zip(cbzFile);
zip.open(QuaZip::mdUnzip);
const QStringList fileList = zip.getFileNamesList();
QStringList allFiles = JlCompress::extractFiles(cbzFile, fileList);
QImage newImage;
for(int file = 0; file < fileList.size(); file++) {
QImageReader reader(allFiles[file]);
newImage = reader.read();
if(newImage.isNull()) return false;
imageList.push_back(newImage); //save image to class variable
}
return true;
}
该变量allFiles
包含 265 个条目,但是,在 for 循环内部,它正在返回false
,正如QtnewImage
所说的那样。invalid
我做错了怎么办?我应该在 QuaZip 而不是 JlCompress 中使用不同的功能吗?