V 友们,我遇到一个技术问题,想请教一下。因为我有较多的图片在我的 nas 中,我想较好的利用起我的图片,就要更方便的能够访问,我调研了较多的相册软件,都不是很满意,所以我打算自己写一个相册,目前架构是 b/s 结构。目前主体已成,但还有一些问题,其中比较困扰一个就是,我用 iphone 拍的照片出来是 HEIC 的格式,目前的 img 标签是不能直接支持该格式,所以处理方式是进行解码,有两种方案,一种是前端解,一种是后端解,但我现在用前端解,用的是 heic2any 库,总得来说解析加载性能不佳,加载比较慢。 后端解目前的思路是把 HEIC 事先转成其它格式,但这会造成存储冗余,我不是很想删掉原有的 HEIC 文件,所以想请教一下 V 友们,在我现有的需求下,有没有更好的方案。
1
heimoshuiyu 1 天前
photoprism 不是支持 heic 吗,元数据也能读
|
2
hrdom 1 天前
|
3
hrdom 1 天前
或者你写一个硬解 heic 的库哈哈,我可以支持 200 元
|
4
XiLingHost 1 天前
https://www.npmjs.com/package/libheif-js 考虑用 wasm 方式编解码,也许性能会有所改善
|
5
chesha1 1 天前
换 safari ,可以原生支持 heic
|
6
mxT52CRuqR6o5 1 天前
看了下 heic2any 是用 libheif 的 js 版本单 worker 单线程软解的,可以尝试改造成用 wasm 版本,且改造成多 worker 多线程充分利用多核能力
后端转换也可以尝试现转不进行冗余存储,native 运行肯定比 js/wasm 效率高的(也更容易调用硬件解码),具体得看你的服务器性能了 |
7
wwwap 1 天前
我之前研究过,答案就是目前 web 没有 能正常显示 且 不存储 冗余的方案。
因为 heic/avif/jxr 等等 支持 HDR 的 在 desktop/mobile 平台,不同环境 firefox/safari/chrome 内的支持情况 都不相同。 |
8
wwwap 1 天前
总的来说,如果你想 以 比如 heic 这种为源文件,web 上能正常显示,需要一套完整系统,而且这套系统 在不同平台上的效果不一致。
比如,桌面端 chrome 支持 hdr ,但是绝大多数安卓 chrome 不支持 hdr 图片,你要为这些不支持 HDR 的准备 SDR 的图片。 等等 一系列问题。 |
9
IvanLi127 1 天前
|
10
wqkenqing OP 我目前看了一下,也偏向这个方案,就是返回 HEIC 格式的图片的时候,现转一遍,我的服务器性能很拉,家里用 14 款 dell 双核笔记本在当服务器。
|
11
wqkenqing OP @heimoshuiyu 打算用自己写的相册服务,因为调研了一圈开源相册都不是很满意,不过你说的这款确实没用过。我用过 pichome,Jellyfin,qumagie 等一些。使用起来都还是挺不舒服的,我自己写的这个相册,我是需要什么需求,我就自己去实现。
|
12
wqkenqing OP @IvanLi127 感谢分享,我目前也比较倾向临时冗余,我去看看你这个方案。我自己的现在的思路的话,就是加一个高性能的计算节点,对加载 HEIC 的图片时,在后端进行现转,这样可以通过多线程等方式来处理实现。
|
13
winterpotato 1 天前
你可能需要 WebP Server Go :-) https://github.com/webp-sh/webp_server_go
当然如果更进一步,用托管的 WebP Cloud 可能更好 https://webp.se |