Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows: 支持HEIC格式 #99

Open
cherub0507 opened this issue Aug 28, 2023 · 7 comments
Open

Windows: 支持HEIC格式 #99

cherub0507 opened this issue Aug 28, 2023 · 7 comments
Labels
distribution distribution or redistribution related issue help wanted Extra attention is needed

Comments

@cherub0507
Copy link

希望能支持

@BLumia
Copy link
Owner

BLumia commented Aug 29, 2023

假定你是 Windows 用户并且用的是我预编译好的版本,那添加这个支持需要做的事情就是在 CI 环境里编译好 LibHeif。

我最近不太有空去和 CI 打乒乓,如果你(或者任何看到这个 Issue 的人)有意愿的话,欢迎 PR :)

@BLumia BLumia added help wanted Extra attention is needed distribution distribution or redistribution related issue labels Aug 29, 2023
@BLumia BLumia changed the title 不支持HEIC格式 Windows: 支持HEIC格式 Aug 29, 2023
@cherub0507
Copy link
Author

“需要做的事情就是在 CI 环境里编译好 LibHeif” 是我做不到的事情
image

@BLumia
Copy link
Owner

BLumia commented Aug 29, 2023

我短期内可能没空做这件事情,那就只能等其他人贡献或者等我有空了。

@BLumia
Copy link
Owner

BLumia commented May 4, 2024

上周刚好有一点空于是就折腾了一下,插件是顺利编译出来了但我手头的测试文件却完全加载不了。相比 MSYS2 环境的现成依赖倒是可以工作的很正常,不清楚是不是还有什么别的依赖需要额外处理...

作为参考目前的修改是: 9743bd7 (位于名为 heif 的分支)

暂时没有更多精力折腾了,可能又要搁置一段时间。有兴趣的人可能可以参考上面的修改继续搞((

@lighter540923555
Copy link

能否使用网上第三方编译的libheif.dll添加到文件夹里使用?

@BLumia
Copy link
Owner

BLumia commented Jul 2, 2024

能否使用网上第三方编译的libheif.dll添加到文件夹里使用?

如果你指的是我在 release 里提供的版本的话,只放那个 DLL 不够,需要把 HEIF 的插件也构建出来(kimg_heif.dll)。

如果你指的是 #99 (comment) 里提到的版本的话,是的。但需要注意,这里 CI 使用的是 MinGW 进行的构建,所以不能使用 MSVC 版本的 DLL(否则就得包括程序本体和相关依赖也使用 MSVC 构建才行)。

不过事实上如果完全走 MSYS2 编译的话是默认支持 HEIF 格式的(需要 kimageformats,MSYS2 仓库里本身就有,直接装就行),不需要任何额外干预,甚至默认还支持更多其他格式。只是走 MSYS2 的话打包出来的 DLL 文件会比我目前提供的版本多出来很多,会减慢一点点启动速度,所以我提供的版本没选这种方案。

@BLumia
Copy link
Owner

BLumia commented Jul 6, 2024

新的进展。

既然我懒得折腾 MinGW 环境的构建,于是考虑干脆提供一个 MSVC 版本,这样可以复用别人构建好的依赖。目前 MSVC 的 CI 已经就绪了。当前体验步骤如下:

  1. 目前可以在 https://github.com/BLumia/pineapple-pictures/actions/runs/9817575459 下载 windows-msvc2022-qt6.5.3-cmake-package ,下载完毕后解压到自己偏好的位置。(后续这个 CI 会合入主干,可以自己找到对应的)
  2. 前往 jurplel/kimageformats-binaries 的 Release 页面 下载 msvc 与 qt 版本均对应的插件资源包,比如这个例子对应到 kimageformats-windows-2022-6.5.3-win64_msvc2019_64.zip(可能需要点击 Show all XX assets 展开显示完整资源列表)
  3. 将上述第二步下载到的资源包中 kimg_ 前缀的 DLL 文件解压到第一步看图程序所在位置的 imageformats 文件夹内
  4. 将上述第二步下载到的资源包中不是以 kimg_ 为前缀的 DLL 文件解压到 ppic.exe 主程序所在的文件夹内
  5. 完成,已经可以正常打开 HEIC 格式(以及包括 JXL 之类的其他格式)的图像文件了。

image

需要注意的是,截至目前,这个 CI 构建的 msvc 版本并未提供 EXIF 元信息支持,也就是说在属性对话框看到的信息会只有基本信息。后续可能会提供包含 EXIF 支持的版本,但这个和此 issue 就没有关系了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
distribution distribution or redistribution related issue help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants