2011-07-07 26 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應用程序中,您在手機上考慮的事情可能並不是什麼大問題。