有什么方法可以预览压缩文件(zip、rar、7z、...)中的图像吗?

问题描述 投票:0回答:1

我想预览压缩文件中的照片而不解压文件 目前,对于 zip 文件,我使用 ZipFile 和 ZipEntry 来查看它们,但它们仅适用于 zip 文件。

所以我继续使用另一个库,7-Zip-JBinding

我得到了一些数据,但我不知道如何显示图像。这是使用该库的代码:

private suspend fun checkFileZip(filePath: String): MutableList<PhotoModel> {
    return withContext(Dispatchers.IO) {
        val list: MutableList<PhotoModel> = mutableListOf()
        runCatching {
            val randomAccessFile = RandomAccessFile(filePath, "r")
            val randomAccessFileStream = RandomAccessFileInStream(randomAccessFile)
            val inArchive = SevenZip.openInArchive(null, randomAccessFileStream)

            inArchive.simpleInterface.archiveItems?.forEach { item ->
                if (!item.isFolder) {
                    if (item.path.contains(".jpg") || item.path.contains(".png")) {
                        if (item.size > 10000) {
                            val photoModel = PhotoModel(
                                "$filePath/${item.path.toFolderName()}",
                                resolution = "",
                                sizePhoto = item.size,
                                lastModifiedPhoto = item.lastWriteTime.time,
                                isFileInApk = true,
                                zipFileString = filePath,
                                zipEntryString = filePath,
                            )
                            addPhotoModel(photoModel)
                            list.add(photoModel)
                        }
                    }
                }
            }
        }.onFailure {
            Log.d("error", "$filePath - ${it.message}")
        }
        return@withContext list
    }
}

我想知道如何预览压缩文件中包含的图像文件。

android kotlin zip rar
1个回答
0
投票

基本上没有。 @g00se 说这取决于软件...可能有一些软件可以读取压缩文件,但最终it将解压缩图像。

我知道这不是你的问题,但如果你想避免解压缩文件(甚至将它们传输到客户端),那么你可以有一个服务器进程:

  1. 解压缩图像
  2. 将它们调整为受控的预览尺寸
  3. 使它们可以通过另一个端点使用,也许是直接返回图像/jpeg等内容的端点
© www.soinside.com 2019 - 2024. All rights reserved.