C# 实现bitmap
来源:互联网 发布:单位的网络不让上b站 编辑:程序博客网 时间:2024/04/30 05:17
C#实现的bitmap能够高效地进行存储标记,排序等
namespace bitmapTest{ class BitMap { const int SizeOfByte = 8; const int SizeOfInt=sizeof(int)*SizeOfByte; int[] map; int NumOfBits; int NumOfInt; public BitMap(int bits) { NumOfBits = bits; NumOfInt = (NumOfBits % SizeOfInt == 0 ? NumOfBits / SizeOfInt : NumOfBits / SizeOfInt + 1); map=new int[NumOfInt]; //for (int i = 0; i < 10; i++) //{ // Set(i); //} //Print(20); //Console.WriteLine("*******"); //for (int i = 0; i < 5; i++) //{ // UnSet(i); //} //Print(20); } public bool UnSet(int which) { if (which<0||which>NumOfBits) { return false; } map[which / SizeOfInt] &= ~(0x1<<(which%SizeOfInt)); return true; } public bool Set(int which) { if (which<0||which>NumOfBits) { return false; } map[which/SizeOfInt] |= 1<<(which%SizeOfInt); return true; } public int TestIfAvaiable(int which) { if (which<0||which>NumOfBits) { return -1; } int test = map[which / SizeOfInt]; if ((test &= 1 << (which % SizeOfInt)) == 0) {//useable return 1; } else { return 0; } } public int FindNextAvaiable() { for (int i = 0; i < NumOfBits; i++) { if (TestIfAvaiable(i) == 1) { Set(i); return i; } } return -1; } public void Print(int printNum) { if (printNum>NumOfBits) { printNum = NumOfBits; } else if (printNum<0) { printNum = 0; } for (int i = 0; i < printNum; i++) { if (TestIfAvaiable(i) == 0) { Console.WriteLine(i); } } } }}
- C# 实现bitmap
- C#实现Bitmap旋转
- C# BitMap
- BitMap实现
- bitmap与2bitmap实现
- bitmap与2bitmap实现
- bitmap与2bitmap实现
- Bitmap Processing in C#
- C# 图像类Bitmap
- C# 切割图片 bitmap
- c# Bitmap byte[]互转
- C# Bitmap 缩放拉伸
- C# bitmap转换bitmapsource
- python实现bitmap原理
- C实现bitmap位图
- C实现bitmap位图
- C实现bitmap位图
- BitMap简易实现
- 采用Expat检查XML文档是否格式良好
- camera驱动 for android
- eclipse 不显示svn 信息解决方案
- <init>与<clinit>的区别
- 闭散列方法与开散列方法
- C# 实现bitmap
- iOS之 UIScrollView 滚动视图的使用
- NSString的比较
- json
- HDU 2133 What day is it(给定日期求星期几)
- 8种排序算法--开山篇
- C语言经典著作导读
- 32位机,64位机,32位操作系统,64位操作系统
- 数据库的读写分离