C#讀取圖片像素

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;        }
相關文章
相關標籤/搜索