简体中文
主题
简体中文
主题
相关参考:Scene API / 相机与拍照
当前 Web 插件提供了拍照能力,既可以使用默认拍照按钮,也可以完全由宿主页面自定义。
默认情况下,Kivicube 会在合适的时机显示拍照按钮:
web3d 场景通常较早可见tracked 后才显示如需隐藏默认按钮:
await kivicubeIframePlugin.openKivicubeScene(iframe, {
sceneId,
hideTakePhoto: true,
});iframe.addEventListener('ready', async (event) => {
const { api } = event.detail;
const imageUrl = await api.takePhoto();
console.log(imageUrl);
});takePhoto() 返回的是一段 data:image/png;base64,... 的图片地址。
当前实现会:
因此拍照结果通常是“相机画面 + 3D 内容”的合成图。
特殊情况下,照片上还会存在水印。
照片的内容,刚好就是iframe包含的内容。
而照片分辨率,和设备的分辨率、DPR有关,不是固定的值大小。
最简单的宿主层做法是把返回结果直接赋给 <img>:
const photo = await api.takePhoto();
previewImg.src = photo;
previewDialog.open = true;const photo = await api.takePhoto();
const link = document.createElement('a');
link.href = photo;
link.download = 'kivicube-photo.png';
link.click();比较常见的一套流程是:
api.takePhoto()