В настоящее время я пытаюсь распаковать файл .cbz (в основном файл .zip) и сохранить все изображения .png, содержащиеся в этом файле .cbz, в 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
, поскольку Qt, как говорят, newImage
invalid
.
Что по этому поводу я делаю неправильно?Стоит ли использовать другие функции в QuaZip вместо JlCompress?