2011-07-07 24 views
10

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

如果这取决于个案。谁能解释一下。

(这个问题可能包括WP7,Silverlight的,WPF,甚至在一般情况下)。基于我们的Windows Phone 7(非芒果)应用经验

回答

19

下面是比较Bitmap(我认为你的意思是“图像文件”)与Vector的优缺点的一般答案。基于位图的图像(gif,tiff,jpeg,png,bmp)本质上是将颜色(以及其他数据,如alpha图层)映射到像素网格的概念。不同的文件格式提供了支持和压缩级别的变体,但这是高级概念。像素和数据的完整映射以矩阵/表的形式存储在文件中。

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

位图的优点是:

  • 他们通常比呈现一个向量更快。这是因为在呈现图像时涉及的计算量很小(只需要像素图和显示)。

  • 他们处理“照相”内容比矢量更好。

  • 它们比矢量更便携。 GIF,JPEG,PNG,BMP比任何矢量格式更标准(其中通常Adobe公司市场)

位图的缺点是:

  • 他们不无衰减比例(像素化)

  • 操纵(即调整大小,模糊的位图的,照明等)的多个处理器比矢量

  • 昂贵的文件通常比基于矢量的文件

为载体的优点大得多是:

  • 灵活用于缩放和操纵

  • 较小的文件格式比矢量

  • 理想的印刷和动画(即操纵的形状,以产生动画效果)

为载体的缺点是:

  • 渲染时间,这取决于载体的复杂性,可以更长

  • 可移植性最格式是高度专有的

  • 工作为“图形”的图像,但对照片写实没有用

希望这会有所帮助。

+1

WOW!多么详细的解释。非常感谢你的回答,这有助于我理解矢量和图像。 – anuith

2

,我们发现使用,而不是使用绘图产生图像更高的响应度,因此用户体验性能可用于页面中的连续动画。 (YMMV)

1

我最初会说图像呈现速度比向量快。矢量越复杂,渲染所花费的时间越多。图像越大,渲染的时间就越多。

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

5

Jeremiah Morrill给出了一个great overview of WPF rendering,它基本上显示了一个向量总是比图像更昂贵。基本上,图像被视为DirectX纹理......无论大小,缩放等等,渲染图像都会有固定的成本。正如Jer的概述所显示的那样,即使是最简单的矢量图像也需要在WPF中呈现一些操作。故事的寓意是,当给出选择时,去图像而不是矢量。

+0

链接不再可用 – altso

+0

链接已修复。 –

1

从Windows Phone 7的角度来看,您通常会更快地呈现图像/位图而不是路径/矢量。作为移动开发的一个通用规则,由于设备上的资源受到限制以及需要考虑性能的增加,如果您可以在设计(或编译)时间做一些事情,比如准备映像,那么这样做肯定更适合做这件事每个客户多次。

在跨平台应用规则时非常小心(WPF,Silverlight & WP7),因为它们在不同情况下用于不同的事情,并受到不同的限制。在高功率PC上运行的WPF应用程序中,您在手机上考虑的事情可能并不是什么大问题。