C# 将透明图片的非透明区域转换成Region的实例代码
2018-10-12 14:12
686 查看
需要设置允许不安全代码.....项目->属性->生成->允许不安全代码
/// <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# 将透明图片的非透明区域转换成Region
- C#实现在listview中插入图片实例代码
- c#实现图片与字节流相互转换的代码
- C#中把Datatable转换为Json的5个代码实例
- C#中把Datatable转换为Json的5个代码实例
- C#byte数组与Image的相互转换实例代码
- C#中把Datatable转换为Json的5个代码实例
- C# 将字节流转换为图片的实例方法(转)
- C#把数字转换成大写金额的代码实例
- asp.net C#如何实现当地时区转换的代码实例
- C# 将字节流转换为图片的实例方法
- 问题:C#将base64转换成二进制图片;结果:c# Base64编码和图片的互相转换代码
- C# 将字节流转换为图片的实例方法
- C# 将字节流转换为图片的实例方法,需要的朋友可以参考一下
- html5将图片转换成base64的实例代码
- c# .net中如何实现图片防盗链功能的代码实例
- C# 手动/自动保存图片的实例代码
- c#多图片上传并生成缩略图的实例代码
- C#中按指定质量保存图片的实例代码