zoukankan      html  css  js  c++  java
  • 高效取图片像素的方法

     public static short搜索[][] GetPixs(Bitmap bitmap)
            {
                int height = bitmap.Height;
                int width = bitmap.Width;
                byte tempB, tempG, tempR;
                short[][] spOriginData = new short[height][];
                for (int i = 0; i < height; i++)
                {
                    spOriginData[i] = new short[width];
                }

                BitmapData dataOut = bitmap.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
                int offset = dataOut.Stride - dataOut.Width * 3;
                try
                {
                    unsafe
                    {
                        byte* pOut = (byte*)(dataOut.Scan0.ToPointer());

                        for (int y = 0; y < height; y++)
                        {
                            for (int x = 0; x < width; x++)
                            {
                                tempB = pOut[0];
                                tempG = pOut[1];
                                tempR = pOut[2];
                                double data=0.31 * tempR + 0.59 * tempG + 0.11 * tempB;
                                if (data > 255)
                                    spOriginData[y][x] = 255;
                                else
                                    if (data < 0)
                                        spOriginData[y][x] = 0;
                                    else
                                        spOriginData[y][x] = (short)data;
                                pOut += 3;
                            }
                            pOut += offset;
                        }
                        bitmap.UnlockBits(dataOut);
                    }
                }
                catch
                {
                }
                return spOriginData;
            }

  • 相关阅读:
    关于WPF的控件对齐方式
    RTC与WebRTC有什么区别
    Ubuntu 14.04 单机安装 CEPH
    【DP专题】——棋盘分割
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
  • 原文地址:https://www.cnblogs.com/harry0914/p/3435936.html
Copyright © 2011-2022 走看看