WPF:图像处理(二)灰度化(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:33 点击:

            Int32 PixelWidth = bitmap.PixelWidth;   // 图像宽度 
            Int32 Stride = PixelWidth << 2;         // 扫描行跨距 
            Byte[] Pixels = new Byte[PixelHeight * Stride]; 
            if (bitmap.Format == PixelFormats.Bgr32 || bitmap.Format == PixelFormats.Bgra32) 
            {   // 拷贝像素数据 
                bitmap.CopyPixels(Pixels, Stride, 0); 
            } 
            else 
            {   // 先进行像素格式转换,再拷贝像素数据 
                new FormatConvertedBitmap(bitmap, PixelFormats.Bgr32, null, 0).CopyPixels(Pixels, Stride, 0); 
            } 
 
            // 将像素数据转换为灰度数组 
            Byte[,] GrayArray = new Byte[PixelHeight, PixelWidth]; 
            for (Int32 i = 0; i < PixelHeight; i++) 
            { 
                for (Int32 j = 0; j < PixelWidth; j++) 
                { 
                    Int32 Index = i * Stride + (j << 2);                     
                    GrayArray[i, j] = Convert.ToByte((Pixels[Index + 2] * 19595 + Pixels[Index + 1] * 38469 + Pixels[Index] * 7471 + 32768) >> 16); 
                } 
            } 
 
            return GrayArray; 
        } 
 
        /// <summary> 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • C#高级编程:数据库连接[1]
  • asp.net 设置GridView的选中行的实现代码
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET&#160;GridView列表代码示例
  • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1