Wpf 哪个更好?在使用图像文件和绘制矢量图形之间

Wpf 哪个更好?在使用图像文件和绘制矢量图形之间,wpf,silverlight,performance,windows-phone-7,vector,Wpf,Silverlight,Performance,Windows Phone 7,Vector,正如我在标题上所说的。 我只是想知道使用图像文件和绘制矢量形状(或路径)之间哪个更好。 我知道使用vector对外观更好,但性能又如何呢 如果这取决于具体情况。谁能解释一下 (这个问题可能包括WP7、Silverlight、WPF,甚至是在一般情况下。)根据我们使用Windows Phone 7(非mango)应用程序的经验,我们发现使用图像而不是绘图可以产生更高的响应能力,因此在页面中连续动画的用户体验性能更好。(YMMV)我最初会说,图像渲染速度比向量快。向量越复杂,渲染所需的时间就越多。图

正如我在标题上所说的。 我只是想知道使用图像文件和绘制矢量形状(或路径)之间哪个更好。 我知道使用vector对外观更好,但性能又如何呢

如果这取决于具体情况。谁能解释一下


(这个问题可能包括WP7、Silverlight、WPF,甚至是在一般情况下。)

根据我们使用Windows Phone 7(非mango)应用程序的经验,我们发现使用图像而不是绘图可以产生更高的响应能力,因此在页面中连续动画的用户体验性能更好。(YMMV)

我最初会说,图像渲染速度比向量快。向量越复杂,渲染所需的时间就越多。图像越大,渲染时间越长


我将推测(用Silverlight术语)当前的大多数视频硬件能够直接处理图像渲染,从而提高性能。我不确定是否可以在视频硬件级别进行矢量计算。

这里是一个比较位图(我认为您所说的“图像文件”)和矢量的优缺点的一般答案

基于位图的图像(gif、tiff、jpeg、png、bmp)本质上是将颜色(以及其他数据,如alpha层)映射到像素网格的概念。不同的文件格式提供了不同的支持内容和压缩级别,但这是高级概念。像素和数据的完整映射以矩阵/表格的形式存储在文件中

正如您所说,基于矢量的图像是基于路径的。文件格式将存储几何点和数据,而不是按像素存储信息

位图的优点是:

  • 它们的渲染速度通常比向量快。这是因为呈现图像所涉及的计算量最小(只需获取像素贴图并显示)

  • 它们比矢量更好地处理“摄影”内容

  • 它们比向量机更便于携带。GIF、JPEG、PNG、BMP比任何矢量格式(通常Adobe有市场)都更标准

位图的缺点是:

  • 它们在没有退化的情况下无法缩放(像素化)

  • 位图的操作(即调整大小、模糊、照明等)比矢量的处理器成本更高

  • 这些文件通常比基于向量的文件大得多

向量的优点是:

  • 灵活的缩放和操作

  • 比vector更小的文件格式

  • 非常适合打印和动画(即操纵形状以产生动画效果)

矢量的缺点是:

  • 根据向量的复杂性,渲染时间可能更长

  • 可移植性大多数格式都是高度专有的

  • 适用于基于“图形”的图像,但不适用于照片真实感


希望这有帮助

耶利米·莫里尔(Jeremiah Morrill)给出了一个例子,基本上说明了矢量渲染总是比图像更昂贵。基本上,图像被视为directx纹理…无论大小、缩放或其他,渲染图像都有固定的成本。正如Jer的概述所示,即使是最简单的矢量图像也需要大量操作才能在WPF中渲染。这个故事的寓意是,在给出选项时,选择图像而不是向量。

从Windows Phone 7的角度来看,通常可以更快地渲染图像/位图,而不是路径/向量。作为移动开发的一般规则,由于设备上的资源受限和需要考虑性能的增加,如果您能做一件事,例如准备一个图像,在设计(或编译)时间,在每个客户机上多次执行它肯定是可取的。
在跨平台(WPF、Silverlight和WP7)应用规则时要非常小心,因为它们在不同的情况下用于不同的事情,并且受到不同的约束。你在手机上必须考虑的事情可能不是在高功率PC上运行的WPF应用程序中的一个问题。多么详细的解释啊。非常感谢您的回答,这对我理解向量和图像有很大帮助。