C# 将透明图片的非透明区域转换成Region的实例代码
需要设置允许不安全代码.....项目->属性->生成->允许不安全代码
/// <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#实现猜数字游戏具体代码,供大家参考,具体内容如下给定一个0-100的随机数字猜其大小题目样式:电脑产生一个0到100之间的随机数字,并且...
[阅读全文]
-
-
-
C# 可空类型的具体使用
在项目中我们经常会遇到可为空类型,那么到底什么是可为空类型呢?下面我们将从4个方面为大家剖析。1、可空类型基础知识顾名思义,可空类型指的就是某个对象类型可以为空...
[阅读全文]
-
-
-
C#实现猜数字小游戏
本文实例为大家分享了c#实现猜数字小游戏的具体代码,供大家参考,具体内容如下效果如图:代码:using system;using system.collecti...
[阅读全文]
-
-
C#实现简单俄罗斯方块
最近在看《.net游戏编程入门经典 c#篇》 第一章介绍了如何制作俄罗斯方块,自己试了试按照书上的步骤,可算是完成了。于是写下这篇文章留作纪念。1.类的设计在充...
[阅读全文]
-
-
网友评论