【发布时间】:2022-12-11 19:56:23
【问题描述】:
我有一个二维数组,它保存图像每个像素的数据。我想要做的是在 .Net Maui (XAML) 中可视化此数据。
我的方法是 <Image/>,我将 ImageSource 属性绑定到我的数据并编写自定义 IValueConverter。但这就是我挣扎的地方。我找不到编写适用于所有平台的自定义图像源的方法。
另一个想法是使用 <Canvas/> 并手动绘制数据。但这有一些怪癖。在较小的图像比例 (10x10) 上,结果变得非常模糊,我找不到任何方法来禁用抗锯齿。为了防止这种情况,我必须为每个像素绘制更大的矩形。但这会增加一些不必要的复杂性,我必须计算实际的宽度和高度并使用它来计算矩形大小。
那么在 MAUI 应用程序中显示像素数据的最简单和最好的方法是什么?
为了简单起见,我们可以说我们有一个byte[,](灰度)或一个Color[,]数组作为数据(无论解决方案更简单)。
【问题讨论】:
-
我最近不得不处理类似的事情。我的方法也是使用 IValueConverter 来提供从字节数组创建的 ImageSource。不过,我找不到有效的实现。我尝试使用 Stream,但没有用。
-
SkiaSharp 可以让您更好地控制显示逐像素构建的图像。我没有在毛伊岛使用过,但我认为它类似于SkiaSharp Graphics in Xamarin Forms。
-
是的,SkiaSharp 适用于 MAUI,其工作方式与适用于 Xamarin.Forms 的方式相同。