Skip to content

介绍与使用 ​

HoloCard 把一张照片做成可交互的分层闪卡:上传照片后,服务端自动把画面切成前、中、后景若干层,每层各配一种箔面,网页上转动卡片时箔面随角度变化。线上地址:https://holocard.longsizhuo.com。

箔面效果与交互手感移植自 pokemon-cards-css(Simon Goellner,GPL-3.0)。该项目中每张卡都需要作者手工准备一张遮罩图,标出箔面透出的区域;HoloCard 用分层算法自动生成这张遮罩,因此任意照片都可以做成闪卡。HoloCard 同样以 GPL-3.0 发布。

界面提供中文、英文、日文三种语言,在页头切换。

一张卡的组成 ​

结构对应真实闪卡的印法:底材是箔,主体用不透明油墨覆盖所以哑光,背景不覆盖所以闪亮。

组成作用范围随视差移动何时可见
景深层各层自己的画面是,各层幅度不同始终
每层的箔面只在该层的形状之内是,跟随所在层卡片倾斜时
整卡炫光整张卡面否只在特定倾角浮现细微的五彩
整卡高光整张卡面否跟随指针

层与深度 ​

服务端估计照片的深度,按「远—近」把画面切成 2~4 层,层数随照片内容而定;有明确主体(人物、动物等)时,主体单独成为最近的一层。每层是一张与原图同尺寸、带透明通道的图片,从远到近叠放后与原图一致。被前景遮挡的部分已经补全,前景移开时露出的是后一层的延续。

视差 ​

卡片倾斜时,各层按各自的视差系数做不同幅度的平移:近处的层向外移动,远处的层向内退,形成立体感。全部层按同一倍数略微放大,以免边缘露出空白。视差可以关闭,关闭后卡片是一张平面图。

箔面 ​

每层的箔面只出现在该层的形状内,并随该层一起移动。可选四种:

箔面界面名称效果
none哑光(不上箔)不上箔
holo经典闪卡 holo斜向彩虹、细扫描线与竖向光栅
sunpillar日柱 sunpillar斜向日柱彩虹,带金属颗粒
rainbow彩虹闪粉 rainbow闪粉与多色渐变

默认分配:最远层(背景)为日柱,中间层为经典闪卡(强度 0.8),最近层(主体)为哑光。只有一层时该层为日柱。

整卡炫光与高光 ​

整卡炫光铺满卡面、不参与视差,只在卡面转到能把光源反射进视线的角度时浮现,其余角度几乎不可见。整卡高光是跟随指针的镜面反光。画面中接近纯白的区域会自动减弱箔面、炫光和高光,以保留白色衣物、毛发等的纹理。

使用 ​

上传与处理 ​

点击页面上的上传按钮(悬停提示「上传照片」)选择图片,或把图片拖到该区域。

  • 支持 JPEG、PNG、WebP、AVIF、HEIC,单张不超过 16MB。超过 15MB 的图片先在浏览器中缩小到最长边 4096 像素再上传,缩小时同时去除 EXIF(含定位信息)。
  • 同一 IP 每 10 分钟最多提交 10 次。
  • 处理在服务端完成,浏览器无需下载模型。进度条显示当前步骤(排队、识别主体、估计深度、切层与补洞等)和预计剩余时间。
  • 只有在部署中没有分层服务时(例如纯静态的自托管部署),才会改在浏览器中处理,首次需要下载约 50MB 模型。浏览器中做出的卡不在服务端,不能分享或导出。

开卡包 ​

上传后,卡带最右侧先出现一个卡包,处理完成时卡包亮起(界面提示「划开,或点一下」):

  • 沿卡包顶部封口横向划过即可撕开,划过约六成后松手,封条整条扯下;
  • 或点击卡包,卡包抖动后展开。

新卡从袋口升出,转一圈亮相。开包伴有音效,有卡包时卡带右下角出现「开包音效」按钮,可以关闭,选择记在本机。系统开启「减少动态效果」时不播放动画,直接显示卡片。

别人分享的卡在一台设备上首次打开时,同样先显示一个卡包;开过之后再打开直接显示卡片。

卡带切换 ​

首页主舞台是一条卡带,列出本次访问做的卡,最新的在最右侧。用卡片两侧的「上一张」「下一张」按钮或键盘 ← → 切换。处理新卡期间可以切回之前的卡;新卡做好时,若停在别的卡上,「下一张」按钮上会出现一个小点。

卡带记录在当前标签页中,刷新后保留,关闭标签页后清空。做过的卡在「我的卡册」中一直可以找到。

调整效果 ​

卡片旁的面板用于调整当前这张卡:

控件作用取值
各层一行:下拉框这一层的箔面类型见上方箔面表
各层一行:滑块(「这一层的箔面强度」)箔面强度;哑光层不可调0~1
「立体视差」开关开启或关闭视差开 / 关
「景深与炫光」→「视差振幅」视差幅度,占卡宽的比例0~16%,默认 2%
「景深与炫光」→「炫光强度」整卡炫光强度,0 为关闭0~1,默认 0.35
「景深与炫光」→「角度锐度」炫光出现的倾角范围,越大越窄10~400,默认 120
「景深与炫光」→「当前炫光」只读,显示此刻炫光的实际亮度—

拖动滑块或更换箔面时,卡片会自动转到炫光最亮的角度,片刻后回正,以便看清调整的效果。

卡的主人做出的调整停手约 1 秒后自动保存到服务端,分享页、分享预览图和导出的动图都按保存的配置呈现。在别人的卡上调整只影响本机当前的显示,不会保存。「立体视差」开关的选择另外记在本机,用于还没有保存过视差设置的卡。

分享 ​

卡片做好后自动生成分享链接,显示在面板中,点「复制」即可。自动生成失败时,面板上保留「生成分享链接」按钮,可手动生成。

  • 链接形如 https://holocard.longsizhuo.com/c/<id>;在英文、日文界面下生成的链接带 ?lang=en 或 ?lang=ja,在聊天软件中显示的标题、描述和预览图使用分享人的语言。
  • 只有卡的主人可以分享:持有这张卡删除口令的设备,或卡所在的登录账号。
  • 卡的主人打开自己的分享链接时可以继续调整、分享和删除;其他人打开时可以转动、导出,调整不会保存。
  • 分享后的保留期按访问量延长,见下方「保留规则」。

导出动图 ​

面板上的导出按钮按设备给出能直接存入相册的格式,文件在服务端按卡片保存的配置生成:

设备按钮格式保存方式
iPhone / iPad「存为动图」GIF生成后按钮变为「保存到相册」,再点一次打开系统分享面板,选择「存储图像」。不支持分享文件的旧系统会下载到「文件」App
安卓「存为动态照片」动态照片(JPEG 末尾附视频)直接下载
电脑「下载动图」APNG(扩展名 .png)直接下载

导出不限于卡的主人,别人分享的卡也可以导出。微信、QQ 的内置浏览器不允许下载,需通过右上角「···」在系统浏览器中打开后再导出。

删除 ​

卡的主人在面板上点「删除这张卡」并确认后,服务端上的层文件和预览图立即清除,已经分享出去的链接同时失效,操作不可恢复。

未登录时,删除权限依赖本机浏览器中保存的删除口令。清除浏览器数据后,这台设备将无法再删除或分享以前做的卡;登录后把卡放进账号可以避免这一问题。

陀螺仪 ​

在手机上,卡片跟随手机的倾斜转动:左右倾斜约 16°、前后倾斜约 18° 时转到最大角度。iOS 需要授权,首次点击卡带区域时系统会弹出请求;拒绝后仍可用手指拨动卡片。

卡片的基准姿态会缓慢跟随手机当前的姿态,保持手机不动时,卡片在几秒内自动回正,仅在转动过程中产生效果。用手指操作时以手指为准。

卡册与登录 ​

我的卡册 ​

卡册以网格列出做过的卡,最新的在前,无需手动添加。卡册的入口在个人中心:点页头右上角的「登录」(登录后显示为头像和名称)打开个人中心,再点「打开卡册」。未开启登录的部署上,页头按钮直接是「我的卡册」。点击缩略图进入该卡的页面,在那里分享、导出或删除。已过期或已删除的卡显示「已过期」。

未登录时,卡册是本机记录:内容来自这台设备浏览器中保存的删除口令,只在这台设备上可见。

登录 ​

HoloCard 支持使用 involutionhell 账号登录,登录是可选的,不登录时全部功能照常可用。登录入口在个人中心(页头右上角的「登录」按钮)和卡册顶部的「用 involutionhell 账号登录」。HoloCard 只获取账号的 id、名称和头像,不获取邮箱。

登录后:

  • 卡册标题变为「我的在线卡册」,列出账号中的卡,以及这台设备上还没放进账号的卡;
  • 登录状态下做的卡直接归入账号,在任何设备上登录后都可以查看、分享和删除;
  • 账号中的卡不会过期。

认领本机的卡 ​

登录后,若这台设备上有还没放进账号的卡,卡册顶部会显示「这台设备上有 N 张卡还没放进账号」以及这些卡的缩略图,默认全部勾选。取消不属于自己的卡(例如在公用电脑上),然后点「放进账号」。

认领后,这些卡归入账号、不再过期,这台设备上原有的删除口令作废,此后以账号作为卡的主人。已删除、已过期的卡不能认领。

个人中心 ​

点页头右上角的按钮打开「个人中心」。页头上另有「文档」,进入本文档站,语言跟随页面当前语言。

未登录时,个人中心包含登录入口,以及「我的卡册」(这台设备上的卡片数量和「打开卡册」)。

登录后,页头按钮显示头像和名称,个人中心包含:

  • 账号信息与「退出登录」;
  • 「我的在线卡册」:账号中的卡片数量,「打开卡册」进入卡册;
  • 「对外接口(API)」:「接口文档」链接、24 小时内的用量,以及账号下的 key。点「申请 API key」获取一个新 key,key 只显示一次;一个账号最多同时持有 10 个 key,共用同一份额度,忘记手上的 key 时直接再申请一个即可,不再使用的点「吊销」。接口用法见 API 文档,在网页中展示接口生成的卡见 播放器。

卡面遮罩 ​

卡面遮罩是面向游戏卡的独立工具,地址为 /masks,首页不放入口:上传一张已经做好的平面卡图,得到卡边、边框、文字、主角、特效、背景六张互不重叠的箔面遮罩,并可预览不同组合的箔面效果。详见卡面遮罩。

保留规则 ​

卡片文件保存在服务端,到期后删除。以下为线上站点的默认值:

卡片保留期计时起点
未分享的卡7 天生成时
已分享的卡7 天起,按访问量延长,最长 112 天最后一次访问
账号中的卡(登录时做的、认领的)不过期—
API 生成的卡24 小时提交时

已分享的卡按访问量分档:

累计访问次数从最后一次访问起保留
0~17 天
2~314 天
4~728 天
8~1556 天
16 及以上112 天
  • 访问指打开分享链接(/c/<id> 页面);同一 IP 对同一张卡一小时内只计一次。
  • 分享操作本身按一次访问重新计时。
  • 由于卡片做好后会自动分享,网页上做的卡通常处于已分享状态;只有自动分享失败且没有手动分享时才按未分享计算。
  • 卡片删除后立即清除,不受上表约束。
  • 自托管部署可以通过环境变量 HOLOCARD_TTL_MS 修改基础保留期(默认 7 天)。