程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#刪除區域實現透明

C#刪除區域實現透明

編輯:C#入門知識

最近在搞一個圖形圖像的項目。不知道經理為什麼選擇了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.OffsetY * 1.33F - m.OffsetY), MatrixOrder.Append);                         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);

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved