C# 将透明图片的非透明区域转换成Region的实例代码_C#教程-查字典教程网
C# 将透明图片的非透明区域转换成Region的实例代码
C# 将透明图片的非透明区域转换成Region的实例代码
发布时间:2016-12-28 来源:查字典编辑
摘要:需要设置允许不安全代码.....项目->属性->生成->允许不安全代码复制代码代码如下://////根据图片得到一个图片非透明部分的区域//...

需要设置允许不安全代码.....项目->属性->生成->允许不安全代码

复制代码 代码如下:

/// <summary>

/// 根据图片得到一个图片非透明部分的区域

/// </summary>

/// <param name="bckImage"></param>

/// <returns></returns>

private unsafe Region GetRegion(Bitmap bckImage)

{

GraphicsPath path = new GraphicsPath();

int w = bckImage.Width;

int h = bckImage.Height;

BitmapData bckdata = null;

try

{

bckdata = bckImage.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

uint* bckInt = (uint*)bckdata.Scan0;

for (int j = 0; j < h; j++)

{

for (int i = 0; i < w; i++)

{

if ((*bckInt & 0xff000000) != 0)

{

path.AddRectangle(new Rectangle(i, j, 1, 1));

}

bckInt++;

}

}

bckImage.UnlockBits(bckdata); bckdata = null;

}

catch

{

if (bckdata != null)

{

bckImage.UnlockBits(bckdata);

bckdata = null;

}

}

Region region = new System.Drawing.Region(path);

path.Dispose(); path = null;

return region;

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类