如何使用 Rust 实时显示图像?

How to display an image in real-time using Rust?

我正在尝试编写光线追踪器并希望在 GUI 中实时渲染我的图像 window。基本上,我有一个不断更新的缓冲区:Vec<u8>。问题是如何在完成每一行后将其显示在屏幕上。我正在考虑使用 iced or egui,但无法弄清楚如何在不每次复制的情况下输出不断变化的图像。也欢迎使用其他工具包的解决方案。

egui 请求 TextureId:

ui.image(my_texture_id, [640.0, 480.0]);

但没有说从哪里得到它

对于 egui 有 some example here and a note here if you want to go 3D (with an example too).

冰镇有一堆 examples, and some of them are using image/image_viewer (e.g. pokedex).

一种方法是复制他们的代码,制作它 compile/run,然后根据您的逻辑对其进行调整。如果出现问题 - 您可以针对更具体的 SO 问题提供更多输入。

此外,我认为出于缓冲目的复制数据本身没有任何问题 (see this)。