【发布时间】:2022-01-28 04:42:26
【问题描述】:
我有一个关于三纤维的非常具体的问题。当您单击下载时,它会使用 toDataURL 创建一个 base64,然后您可以下载它。图像具有画布的高度和宽度,画布具有浏览器窗口的高度和宽度。如果浏览器窗口为 1024x768,则图像具有相同的大小。 是否有可能无论画布的高度和宽度是多少,图像的高度和宽度都是 1920x1080 像素?我不知道如何实现。
export default function Home() {
const canvas = useRef()
const [downloadDatei, setDownloadDatei] = useState('')
const downloadCanvas = () => {
const download = canvas.current.toDataURL('image/jpeg', );
setDownloadDatei(download)
}
return (
<div className="mitte">
<section className="canvasSection">
<Canvas
ref={canvas}
className="canvas"
shadows
linear
camera={{ position: [10, 0, 80], fov: 45 }}
>
<Suspense fallback={false}>
<Content />
</Suspense>
</Canvas>
</section>
<button >
<a href={downloadDatei} download='test.jpg' onClick={() => downloadCanvas()}>
Download
</a>
</button>
</div>
)
}
【问题讨论】:
标签: javascript reactjs canvas three.js react-three-fiber