C# 将透明图片的非透明区域转换成Region的实例代码

Olive ·
更新时间:2024-11-14
· 801 次阅读

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

代码如下:
/// <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);
   &n bsp;        path.Dispose(); path = null;
            return region;
        }

您可能感兴趣的文章:C#中图片、二进制与字符串的相互转换方法C# 图片与二进制转换的简单实例asp.net(c#)实现从sqlserver存取二进制图片的代码C#中图片.BYTE[]和base64string的转换方法详谈C# 图片与byte[]之间以及byte[]与string之间的转换C#简易图片格式转换器实现方法C#将图片和字节流互相转换并显示到页面上C#实现的图片、string相互转换类分享c# Base64编码和图片的互相转换代码C# 将字节流转换为图片的实例方法C#实现把图片转换成二进制以及把二进制转换成图片的方法示例



region C# 图片

需要 登录 后方可回复, 如果你还没有账号请 注册新账号