zoukankan      html  css  js  c++  java
  • C# 图像快速转化成byte[]和计算像素值

     public static unsafe byte[] ConvertTo8Byte(Bitmap img)
            {
                byte[] result = new byte[img.Width * img.Height];
                int n = 0;
                BitmapData data = img.LockBits(new Rectangle(0, 0, img.Width, img.Height), ImageLockMode.ReadOnly,
                                               PixelFormat.Format24bppRgb);
                var bp = (byte*)data.Scan0.ToPointer();
    
                for (int i = 0; i != data.Height; i++)
                {
                    for (int j = 0; j != data.Width; j++)
                    {
                        result[n] = bp[i * data.Stride + j * 3];
                        n++;
                        //0.3R+0.59G+0.11B
                        float value = 0.11F * bp[i * data.Stride + j * 3] + 0.59F * bp[i * data.Stride + j * 3 + 1] +
                                      0.3F * bp[i * data.Stride + j * 3 + 2];
    
                    }
                }
                img.UnlockBits(data);
                //img.Dispose();
                return result;
                // ColorPalette palette = bit.Palette;
                //for (int i = 0; i != palette.Entries.Length; i++)
                //{
                //    palette.Entries[i] = Color.FromArgb(i, i, i);
                //}
                //bit.Palette = palette;
                //bit.Save(destFile, ImageFormat.Bmp);
                //img.Dispose();
                //bit.Dispose();
            }
  • 相关阅读:
    ACM HDU 1176 免费馅饼(DP)
    PHP下载时中文文件名乱码的问题
    NYOJ 27
    NYOJ 148
    NYOJ 8
    NYOJ 138
    NYOJ 461
    POJ 1200
    STL排序算法
    NYOJ 523
  • 原文地址:https://www.cnblogs.com/liuxinls/p/3261102.html
Copyright © 2011-2022 走看看