2009-12-12 33 views
1

我想實現像photoshop一樣的橡膠功能,但我希望橡膠只是爲了擦除在背景上繪製的形狀而不修改背景。現在背景是一個圖像,所以我不能使用單色的畫筆。如何使用GDI實現圖層?

回答

1

您需要將圖像的每一層存儲在其自己的緩衝區中,然後將它們組合起來輸出。所以背景將位於一個Image對象中,並且該形狀將位於另一個Image對象中。當你得到WM_Paint消息時,你必須將兩個圖像合併爲一個並輸出(或者你必須將圖像預先合併到內存中的第三個Image對象中)。

0

如果您只是想繪製簡單的線條/形狀,就像橡皮條盒一樣,傳統的方法是使用排版或繪畫。這「反轉」繪製的顏色,因此第二次繪製相同的形狀會將其擦除並返回原始圖像。 (如Dave Markle所說)只是將兩個單獨的圖像合併到屏幕上(您只需將您正在編輯的實際圖像存儲在離屏位圖中)。現在,計算機功能更加強大,因此我們傾向於這樣做。這使您可以使用任何顏色/透明度繪製覆蓋圖,這樣可以使其看起來更好看。