簡體   English   中英

C#中的圖像處理

[英]image processing in c#

問題之前,請考慮一下例如photoshop。 在圖片上繪制矩形時,可以移動它。 並且當您移動它時,它會非常快速地工作,並且不會在圖片上留下痕跡。
所以我的問題是,如何在C#應用程序中做到這一點?

當您移動矩形時,Photoshop不會將其放在圖像中然后再繪制圖像,而是在不包含矩形的情況下繪制圖像,並且在屏幕上的頂部繪制該矩形。 這樣,當您移動矩形時,它可以重新繪制以前由矩形覆蓋的圖像部分,並在新位置繪制矩形。

我認為您是在詢問文檔圖像上方的選擇矩形(或其他臨時形狀)。 這種效果有時被稱為“橡皮筋”,尤其是在從一個點到另一點畫一條線時(它像橡皮筋一樣伸展)。

傳統上,這是通過使用XOR繪圖完成的-而不是用選擇形狀覆蓋圖像,而是反轉該區域中的顏色。 然后,要刪除選擇,只需再次反轉顏色,即可返回相同的原始圖像。 如今,圖形渲染已經足夠快,以至於通常不需要這些技巧。 只需重新繪制窗口的該部分即可(不包含矩形)。

無論哪種方式,重要的是要認識到文檔圖像(用戶正在編輯的圖像)與窗口圖像是不同的, 窗口圖像只是在需要時可以重新制作的副本。 在窗口中,繪制文檔圖像,然后在其頂部繪制選擇,引導標記和其他此類控件。

我不熟悉C#的GUI設施(而且我知道您可能會使用多個GUI框架),但是它可能具有將許多“小部件”,“視圖”或“控件”放入其中的通常結構。窗口(可能彼此嵌套)。 您可以通過將一個適當大小的矩形窗口小部件(帶有實線邊框和透明背景)放在圖像窗口小部件上,來做一個簡單的選擇框(盡管不是最佳效率的選擇框)。 這使您的GUI框架可以為您進行適當的重繪,並且可能是一種不錯的廉價入門方式。

暫無
暫無

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

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