gpt4 book ai didi

php - 我可以使用 PHP 对 Canvas 进行服务器端处理吗

转载 作者:行者123 更新时间:2023-12-04 10:02:09 24 4
gpt4 key购买 nike

我正在 Canvas 上创建一个具有不同图案的更大文件。假设文件大小为 20,000 x 20,000 像素。这是在客户端完成的太多处理,因此我需要创建 Canvas ,然后从中制作 png,然后将其作为下载文件提供。

问题是,有没有办法在 <canvas> 上进行服务器端处理? PHP 中的元素。有一个名为“canvas”的节点包,但我正在寻找 PHP 中的东西?

最佳答案

如果要将 Canvas 发送到服务器,则无论如何都必须将 Canvas 转换为 Blob 或 base64 字符串……然后也在服务器上处理它并将其返回给客户端。感觉就像是不必要的额外步骤,它们对您的伤害大于对您的帮助。

在这种情况下,我个人会做的是将 Canvas 转换为 Blob,从该 Blob 创建一个流,然后使用 StreamSaver.js以节省内存的方式保存它。它会改善处理时间吗?不,但它在 RAM 使用方面肯定更好。您可以在生成消息时向用户显示一条消息。

function saveImage() {
message.innerText = 'Generating image...';
const start = performance.now();
const blob = canvas.toBlob(async function (blob) {
const fileStream = streamSaver.createWriteStream('test.png');

const readableStream = blob.stream();
await readableStream.pipeTo(fileStream);

const end = performance.now();
console.log(end - start);

message.innerText = 'Done!';
});
}

完整示例的 fiddle : https://jsfiddle.net/gp2xtbkn/

关于php - 我可以使用 PHP 对 Canvas 进行服务器端处理吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61771464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com