2011-08-06 170 views
0

之前的問題想一想photoshop。當您在圖片上繪製矩形時,您可以移動它。當你移動它的時候速度非常快,它不會在圖片上留下痕跡。
所以我的問題是,如何在c#應用程序中做到這一點?c中的圖像處理#

回答

3

當你正在移動的直腸這可能是有用的Photoshop不會將它放在圖像中,然後繪製圖像,而不是繪製圖像而不繪製矩形,矩形繪製在屏幕上。通過這種方式,當您移動矩形時,它可以重繪先前由矩形覆蓋的圖像部分,並在新位置繪製矩形。

+0

你可以顯示這個示例代碼? – namco

4
+0

謝謝,但哪個部分有回答我的問題? – namco

+0

@namco:它目前不回答你的答案,但你可以得到你的答案,如果你閱讀並學習它 – genesis

+0

+1爲鼓勵研究;-) – OnesimusUnbound

0

我想你在文檔圖像頂部的問候選擇矩形(或其他臨時形狀)。這種效果有時被稱爲「橡皮帶」,特別是從一點到另一點畫線時(它像橡皮筋一樣伸展)。

傳統上,這是通過使用XOR繪圖完成的 - 而不是用選擇形狀覆蓋圖像,該區域中的顏色被顛倒。然後,要刪除選擇,只需再次反轉顏色,即可返回到相同的原始圖像。今天,圖形渲染速度足夠快,通常不需要這些技巧;只需重新繪製該窗口的一部分(不包含矩形)就足夠了。

無論哪種方式,它是認識到文件形象的重要 - 用戶正在編輯的圖像 - 是不一樣的窗口形象,這是剛需翻拍必要時副本。在窗口中,繪製文檔圖像,然後在其上繪製選擇,引導標記和其他此類控件。我並不熟悉C#的GUI設備(並且我知道您可能會使用多個GUI框架),但它可能具有將許多「小部件」,「視圖」或「控制「(可能嵌套在對方內)。您可以通過在圖像小部件頂部放置尺寸適當的矩形小部件(具有實心邊框和透明背景)來做一個簡單的選擇框 - 儘管不是最有效的選擇框。這可以讓你的GUI框架爲你做適當的重繪,並且可能是一個很好的廉價開始。