C 刪除區域實現透明

2022-02-22 08:30:21 字數 1409 閱讀 7016

最近在搞乙個圖形影象的專案。不知道經理為什麼選擇了c#語言,但還是要做,呵呵。

在期間出現乙個比較難解決的問題如下:

刪除當前圖層的指定區域用來顯示下面圖層在這個區域的影象,相當於ps蒙版層的效果。

實現**如下:

bitmap tmp = new bitmap(page.imagefilename);

bitmap image = new bitmap(tmp.width, tmp.height);

graphics g = graphics.fromimage(image);

g.clear(color.transparent);

g.drawimage(tmp, 0, 0, tmp.width, tmp.height);

tmp.dispose();

g = graphics.fromimage(image);

foreach (ivobject obj in page.layers[1].vobjects)

{matrix m;

graphicspath path = new graphicspath();

switch (obj.gettype().name)

{case "rectanglevobject":

path.clearmarkers();

path.addrectangle(obj.getvobjectbounds());

m = obj.transform;

m.translate((m.offsetx * 1.33f - m.offsetx),

m.scale(1.33f, 1.33f);

path.transform(m);

g.setclip(path);

g.clear(color.transparent);

bitmap sourceimage = new bitmap(imagefilename);

bitmap image = new bitmap(sourceimage .width, sourceimage .height); 

graphics g = graphics.fromimage(image); 

g.clear(color.transparent);

g.drawimage(sourceimage , 0, 0, sourceimage .width, sourceimage.height);

sourceimage .dispose();

graphicspath path = new graphicspath();   

rectangle r = new rectangle(x,y,w,h);

path.addrectangle(r);

g.setclip(path);

g.clear(color.transparent);

C 實現透明窗體

這篇文章不是windows mobile的,而是win32的。這篇文章主要介紹一下c 下如何呼叫windows api函式,這裡也想說一下,windows mobile程式設計不能把眼光只侷限於手機,手機與pc端相結合的程式也是很有挑戰力 很有市場的。所以,這也是我寫這篇文章的原因之一。做delph...

as3 獲取非透明區域

bitmapdata.getcolorboundsrect 0xff000000,0x00000000,false 主要方法我們用到getcolorboundsrect 來獲取非透明區域的大小getcolorboundsrect 的引數可以方便 的讓我們賽選出非透明區域 處理過程如下 bitmapd...

圓形區域的半透明填充

在圖形繪製的過程中,經常需要實現半透明的顯示效果,特別是有背景圖效果時,可以使得前景圖不會完全覆蓋背景圖,達到兩者皆可瀏覽的效果。比如我們在瀏覽一些颱風路徑的flash時,可以看到颱風的大風半徑覆蓋區域就是半透明填充效果,可以讓使用者既可以看到颱風的影響範圍,又可以看到具體的影響範圍內的陸地和海洋區...