需要一个漫画阅读器/图片压缩包浏览器

想找一个支持浏览压缩包内图片的软件,也可以说是漫画阅读器,需求如下:

  • 支持直接识别 zip rar4 rar5 等压缩格式,7z比较特殊,也需要支持,但是下面会讲到特殊情况;
  • 缓存文件,或者说临时解压的图片文件存放在内存中(不写入磁盘),或者支持直接修改临时文件路径也行,比如修改至 /dev/shm/ 效果也是差不多的;
  • 7z单独讲,因为 7z 一般预设会采用固实压缩,而固实压缩的文件在图片浏览器里要直接解压到内存似乎比较麻烦,在 Windows 下基本都是不支持将 7z 的临时文件(图片压缩包)存放在内存,所以 7z 的支持也不强求,如果有直接支持并符合上面需求就更好了。

在 Debian Buster 里我试用过以下软件,大概情况如下,大家在推荐时可以参考:

  1. qcomicbook
    可以支持 rar; rar5 ,但是对 zip 的支持却有问题,某样本 zip 压缩包,通过 Windows 资源管理器右键 zipped 生成,qcomicbook 加载不出当中的图片,同样的文件及目录结构下,用 rar 压缩成 zip 后,qcomicbook可以正常显示当中的图片,原因未明;
    另外,qcomicbook 支持修改临时文件夹,修改后可发现查看图片压缩包后会临时解压至设置的目录里。

  2. okular
    不直接支持 zip 之类的压缩包,把扩展名改为 cbz 可识别,未找到设置临时文件路径的方法,不确定是否存放于内存,看内存前后占用情况,有可能是存在于内存,有确切说明最好,大概需要翻查代码,由于不直接支持压缩包文件,先搁置了。

  3. mcomix
    开发不算活跃,可以直接支持 zip ,但是临时文件路径是 /tmp ,并且不清楚如何修改;

  4. yacreader
    这个是官方源里没有的,可以添加yacreader的源,直接支持 zip 和 rar4 ,至于 rar5 ,不管是安装 unrar-nonfree unrar-free 还是 rar ,都无法支持,尚不清楚如何支持 rar5 。
    想测试的可以参考以下命令在 Buster 上安装(建议在非工作环境下测试)

echo 'deb [signed-by=/usr/share/keyrings/home_selmf.gpg] https://download.opensuse.org/repositories/home:/selmf/Debian_10/ /' | sudo tee /etc/apt/sources.list.d/home_selmf.list
curl -L https://download.opensuse.org/repositories/home:selmf/Debian_10/Release.key -o home_selmf
gpg --dearmor home_selmf
sudo install -o root -g root -m 644 home_selmf.gpg /usr/share/keyrings/home_selmf.gpg
sudo apt update
sudo apt install yacreader

卸载可以参考

sudo apt autoremove --purge yacreader
sudo rm home_selmf /etc/apt/sources.list.d/home_selmf.list /usr/share/keyrings/home_selmf.gpg
sudo apt update
  1. peruse
    加载 zip 失败,没有往下测试了。
  1. qcomicbook支持zip、rar4、rar5、7z,临时文件路径在配置>配置QComicBook>其他中配置。我在测试zip时没有发现问题,但是从
    QComicBook/README at master · stolowski/QComicBook · GitHub
  1. Known issues

  • rar/unrar (and unzip/unace probably too) may have problems with files/dirs in the
    archive, which names contain non-ascii characters (like special characters for you
    language). As a result they won’t be decompressed and qcomicbook may show
    “No images found” error box.
  • the free (opensource) unrar doesn’t currently support 3.0 rar archives. Such archives are reported
    as empty by QComicBook. It is recommended to use non-free rar/unrar.

你遇到的问题属于这种情况吗?

  1. okluar
    参见 Document Format Handlers Status - Okular (kde.org),okular支持的是Comic Book Format,它不直接支持存档格式。没有发现配置临时文件路径的选项。

  2. mcomix
    mcomix支持zip、rar4、rar5、7z,临时文件路径在编辑>首选项>高级中配置。

  3. yacreader
    mcomix支持zip、rar4,但是不支持rar5、7z。没有发现启用这些格式支持的方法。

  4. peruse
    Peruse .:. Comic Book Reader by KDE

What formats does Peruse support?

Peruse Reader supports a wide range of formats:

  • Comic Book Archive (cbz, cbr, cb7, cbt, cba)
    With further support for embedded metadata in one of multiple formats:
  • Portable Document Format (pdf)
  • ePub Books (epub)
  • DeVice Independent files (dvi)
  • DeJaVu (djvu)
  • Compiled Help (chm)

Peruse Creator uses the Comic Book Archive Zip format with ACBF metadata for making new books.

peruse事实上也不直接支持存档格式。没有发现配置临时文件路径的选项。

综合来看,我更建议使用qcomicbook或mcomix。

qcomicbook 加载部分 zip 失败,确实是特殊字符的问题,因为用 rar 压缩的 zip 用的一样的文件及名称、目录结构,所以前面没提到特殊字符的情况,虽然我当时也怀疑是特殊字符;

Buster 里的 mcomix 并不支持修改临时文件路径,想了想,试了下 Bullseye 的,Bullseye 才支持;

然后顺带试了 Bullseye 的 qcomicbook ,特殊字符问题依然没解决;

目前看来 mcomix 是最符合的,如果还有其它同类软件也欢迎推荐。