簡體   English   中英

矢量繪圖疊加 C#

[英]Vector drawing overlay C#

我想在位於圖片前面的疊加層上繪制矢量線和文本。 目前我正在通過drawing.graphic在透明的除垢bitmap上作畫,但由於我在Mouse_move上刷新它,所以它的資源很重。 現在我想通過一些 svg 查看器直接顯示我的向量。 有人知道使用好的 package 嗎? 它只需要高性能,可以集成到我的 xaml 中,使用透明背景並繪制文本和線條。 我發現的 NuGet 軟件包要么記錄不充分,要么不起作用。 (VectSharp,SVG)

據我所知,SVG 沒有任何內置功能。 假設您沒有接受 SVG 的想法,可能還有其他方法可以做到:

  1. 使用 windows forms 並在paint-event中進行手動繪圖。 如果您要繪制大量圖形,這可能會很慢。
  2. 繪制到 bitmap 並將其繪制到屏幕上(正如您目前似乎所做的那樣)。 假設您沒有更改每次鼠標移動中的所有內容,則可以將 bitmap 分開在前景和背景 bitmap 中,並且僅在鼠標移動時重繪前景。
  3. 將 svg 圖形轉換為 xaml。 像inkscape這樣的程序可以做到這一點,但它可能需要一些手動調整才能獲得正確的封閉元素等。
  4. 將矢量圖形對象轉換為相應的 WPF 圖形 object 並將其綁定到 Z44CC44B812511F4AFBA4581 代碼中的某個合適的容器 object。
  5. 使用 SharpDX 之類的東西來獲得對圖形硬件的較低級別的訪問。

您提到了性能問題,但此類事情的性能是確保您不會不必要地重做工作並確保盡可能有效地將圖形基元發送到硬件。 例如,繪制單個GraphicsPath可能比單獨繪制每條線更有效。

如果您可以指定嘗試繪制的矢量數量,這也會很有幫助。 如果我們談論的是數百萬行,除非您有一個優化良好的渲染管道,否則它可能會有點慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM