• 1bpp像素遍历(找了半天,感谢github)


     /// <summary>
            /// 获取比例
            /// </summary>
            /// <param name="rect"></param>
            /// <param name="bimp"></param>
            /// <returns></returns>
            private static double DoGetBlackPercent(Rectangle rect, Bitmap bmpSource)
            {
                var width = rect.Width;
                var height = rect.Height;
                int area = width * rect.Height;
                int grayCount = 0;
                BitmapData gbmData = bmpSource.LockBits(rect, 
                    ImageLockMode.ReadWrite, PixelFormat.Format1bppIndexed);
                IntPtr ScanG = gbmData.Scan0;
                unsafe
                {
                    byte* g = (byte*)(void*)ScanG;
                    for (int y = 0; y < height; y++)
                    {
                        for (int x = 0; x < width; x++)
                        {
                            int index = y*gbmData.Stride + (x >> 3);
                            byte mask = (byte)(0x80 >> (x & 0x07));
                            if ((g[index] & mask)!=0)
                            {
                                grayCount++;
                            }
                        }
                       
                    }
                }
                var result = (grayCount / (area + 0d));
                bmpSource.UnlockBits(gbmData);
                return result;
            }
  • 相关阅读:
    Bellman算法
    Codeforces Round #378 (Div. 2) D
    运算符优先级
    Kruskal算法
    Java 大数运算
    无根树转有根树
    欧拉函数模板
    HDU 4135 Co-prime(容斥原理)
    快速求n的质因子(数论)
    Markdown中插入数学公式
  • 原文地址:https://www.cnblogs.com/daxiongblog/p/5578640.html
Copyright © 2020-2023  润新知