最近由于工作需要,要实现一个简单的gis系统。要求能够显示同一区域的多种分辨率的地图。由于图片有大有小,当图片很大的时候如果将整张图片读入内存,将会消耗大量的内存,效率不高。所以考虑将大的图片切割成小块保存,根据显示时候的需要调用指定区域的图片,拼接起来显示。
下面是我切割图片的代码;仅供参考,希望能对大家有所帮助
BMPSpliter.h
1
// BMPSpliter.h: interface for the BMPSpliter class.
2
//
3
//////////////////////////////////////////////////////////////////////
4![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
#if !defined(AFX_BMPSPLITER_H__1B6BD900_9C6F_4BCD_8B77_2BC47F32D1D0__INCLUDED_)
6
#define AFX_BMPSPLITER_H__1B6BD900_9C6F_4BCD_8B77_2BC47F32D1D0__INCLUDED_
7![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
#if _MSC_VER > 1000
9
#pragma once
10
#endif // _MSC_VER > 1000
11
class BMPSpliter : public CObject
12
{
13
public:
14
BOOL ReadFile();
15
16
void SetSourceFileName(CString fileName);
17
void SetDestDirectory(CString pdestDir);
18
void SetStartNumber(int startNumber);
19
20
21
BOOL Split(int XPxCount, int YPxCount);
22
BOOL ReadFile(CString fileName);
23
BMPSpliter();
24
virtual ~BMPSpliter();
25
private:
26
CString SourceFileName;
27
CString DestDirectory;
28
int StartNumber;
29
int GetTheLineOffset(int XNum, int XPxCount);
30
int GetOneLineSize(int XPxCount);
31
32
int GetTheTileSize(int XPxCount, int YPxCount);
33
LPBYTE GetTheTile( int XNum, int YNum,int XPxCount, int YPxCount );
34
LPBYTE lpbmpBody;
35
BITMAPINFO bitmapInfo;
36
BITMAPINFOHEADER bmpInfoHeader;
37
BITMAPFILEHEADER fileHeader;
38
BOOL WriteFile(CString fileName,LPBYTE bmpBody, int count, int height, int width);
39
40
};
41![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
42
#endif // !defined(AFX_BMPSPLITER_H__1B6BD900_9C6F_4BCD_8B77_2BC47F32D1D0__INCLUDED_)
43![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
BMPSpliter.cpp
1
// BMPSpliter.cpp: implementation of the BMPSpliter class.
2
//
3
//////////////////////////////////////////////////////////////////////
4
//////////////////////////////////////////////////////////////////////////
5
//只能构处理24位色以上的图片。
6
//用户只要指定要切割的图片,以及切割后图片的宽度和高度,该类即会按照从左到右、
7
//从下到上的顺序来切割图片;
8
//通过SetDestDirectory()用户可以指定切割后图片的存放目录;
9
//通过SetStartNumber()可以指定切割后图片的起始编号;
10
//////////////////////////////////////////////////////////////////////////
11
#include "stdafx.h"
12
#include "SplitBMP.h"
13
#include "BMPSpliter.h"
14
#include <math.h>
15
#ifdef _DEBUG
16
#undef THIS_FILE
17
static char THIS_FILE[]=__FILE__;
18
#define new DEBUG_NEW
19
#endif
20![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
//////////////////////////////////////////////////////////////////////
22
// Construction/Destruction
23
//////////////////////////////////////////////////////////////////////
24![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
BMPSpliter::BMPSpliter()
26
{
27
SetStartNumber(0);
28
lpbmpBody = NULL;
29
SetDestDirectory("map");
30
SetSourceFileName("");
31
}
32![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
BMPSpliter::~BMPSpliter()
34
{
35
if(lpbmpBody!=NULL)
36
delete [] lpbmpBody;
37
lpbmpBody =NULL;
38
}
39![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
40
BOOL BMPSpliter::ReadFile(CString fileName)
41
{
42
SetSourceFileName(fileName);
43
return ReadFile();
44
}
45![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
BOOL BMPSpliter::Split( int XPxCount, int YPxCount )
47
{
48
if(lpbmpBody == NULL)
49
return FALSE;
50
if(SourceFileName.IsEmpty())
51
return FALSE;
52
double temp = XPxCount;
53
int XCount = (int)ceil(bmpInfoHeader.biWidth/temp);
54
temp = YPxCount;
55
int YCount = (int)ceil(bmpInfoHeader.biHeight/temp);
56
LPBYTE bmpBody;
57
CString fileName;
58
CString msg;
59
for (int j = 0; j <YCount ; j++)
60
{
61
for (int i = 0; i <XCount ; i++)
62
{
63
bmpBody = GetTheTile(i,j, XPxCount,YPxCount);
64
fileName.Format("%s\\%d.bmp",DestDirectory,i+j*XCount+this->StartNumber);
65
if (!WriteFile(fileName,bmpBody,GetTheTileSize(XPxCount,YPxCount),XPxCount,YPxCount))
66
{
67
msg.Format("%s 写入失败!",fileName);
68
//messagePrinter(msg);
69
return FALSE;
70
}
71
}
72
}
73
return TRUE;
74
// return WriteFile("map\\A.bmp",lpbmpBody,bmpInfoHeader.biSizeImage,bmpInfoHeader.biHeight,bmpInfoHeader.biWidth);
75
}
76![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
77
BOOL BMPSpliter::WriteFile(CString fileName,LPBYTE bmpBody, int count, int height, int width)
78
{
79
CFile file;
80
if (!file.Open(fileName,CFile::modeCreate|CFile::modeWrite))
81
return FALSE;
82
BITMAPFILEHEADER header = this->fileHeader;
83
header.bfSize = 54 + count;
84
BITMAPINFOHEADER infoHeader = this->bmpInfoHeader;
85
infoHeader.biHeight = height;
86
infoHeader.biWidth = width;
87
infoHeader.biSizeImage = count;
88
try
89
{
90
file.Seek(0,CFile::begin);
91
file.Write( (LPVOID)&header, sizeof(BITMAPFILEHEADER));
92
file.Write( (LPVOID)&infoHeader, sizeof(BITMAPINFOHEADER));
93
file.Write( (LPVOID)bmpBody, count);
94
file.Flush();
95
}
96
catch (CException* e)
97
{
98
file.Close();
99
return FALSE;
100
}
101
file.Close();
102
return TRUE;
103
}
104![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
105![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
106![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
107
LPBYTE BMPSpliter::GetTheTile( int XNum, int YNum,int XPxCount, int YPxCount )
108
{
109
//根据参数计算要读取的区域
110
//如果超越了原图的边界,用空白补齐;
111
LPBYTE lpbody= NULL;
112
int count = GetOneLineSize(XPxCount);
113
count = count * YPxCount;
114
lpbody = (LPBYTE) new char[count];
115
FillMemory(lpbody,count,0xFF);
116
int StartPos = GetOneLineSize(bmpInfoHeader.biWidth)*YPxCount*YNum + (bmpInfoHeader.biBitCount/8)*XPxCount*XNum;
117
int OneLineOffset = GetTheLineOffset(XNum, XPxCount);
118
int LineStartPos = 0;
119
for (int i = 0; i < YPxCount ; i++)
120
{
121
LineStartPos = StartPos + GetOneLineSize(bmpInfoHeader.biWidth)*i;
122
CopyMemory(&lpbody[GetOneLineSize(XPxCount)*i],&lpbmpBody[LineStartPos],OneLineOffset);
123
}
124
return lpbody;
125![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
126
}
127![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
128
int BMPSpliter::GetTheTileSize( int XPxCount, int YPxCount )
129
{
130
//根据参数来计算该Tile的图像体的大小。
131
int result = GetOneLineSize(XPxCount);
132
result = result*YPxCount;
133
return result;
134
}
135![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
136![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
137
int BMPSpliter::GetOneLineSize(int XPxCount)
138
{
139
int result = (((XPxCount*bmpInfoHeader.biBitCount)+31)>>5)<<2;
140
return result;
141
}
142![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
143
int BMPSpliter::GetTheLineOffset(int XNum, int XPxCount)
144
{
145
int result = XPxCount*(bmpInfoHeader.biBitCount/8);
146
int sourceBmpLengthPerLine = bmpInfoHeader.biWidth*(bmpInfoHeader.biBitCount/8);
147
if( result*(XNum+1)>sourceBmpLengthPerLine)
148
result = sourceBmpLengthPerLine - (result*XNum);
149
return result;
150
}
151![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
152![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
153
void BMPSpliter::SetStartNumber(int startNumber)
154
{
155
StartNumber = startNumber;
156
}
157![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
158
void BMPSpliter::SetDestDirectory(CString destDir )
159
{
160
this->DestDirectory = destDir;
161
CFileFind ff;
162
if(!ff.FindFile(DestDirectory+"\\*.*"))
163
CreateDirectory(DestDirectory+"\\",NULL);
164
}
165![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
166
void BMPSpliter::SetSourceFileName(CString fileName)
167
{
168
SourceFileName = fileName;
169
}
170![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
171
BOOL BMPSpliter::ReadFile()
172
{
173
CFile file;
174
file.Open(SourceFileName,CFile::modeRead);
175
try
176
{
177
int counts = file.Read((LPVOID)&fileHeader,sizeof(BITMAPFILEHEADER));
178
if (counts!=sizeof(BITMAPFILEHEADER))
179
throw new CException;
180
if(fileHeader.bfType != 0x4d42)
181
throw new CException;
182
//文件头信息->位图信息->位图数据
183
//bfOffBits为从文件开始到数据内容之间的距离
184
int size = fileHeader.bfOffBits - sizeof(BITMAPFILEHEADER);
185
//bmpInfoHeader = (LPBITMAPINFOHEADER) new char[size];
186
// BITMAPINFOHEADER和颜色表
187
counts = file.Read(&bmpInfoHeader, sizeof(BITMAPINFOHEADER));
188
if (counts!=sizeof(BITMAPINFOHEADER))
189
throw new CException;
190
//如果为16位色或者更小,则无法处理
191
if(bmpInfoHeader.biBitCount<=16)
192
throw new CException;
193
//如果图像是压缩的,则也无法处理
194
if(bmpInfoHeader.biCompression !=BI_RGB)
195
throw new CException;
196
//读取图像内容
197
file.Seek(fileHeader.bfOffBits,CFile::begin);
198
lpbmpBody = (LPBYTE)new char[bmpInfoHeader.biSizeImage];
199
counts = file.Read(lpbmpBody,bmpInfoHeader.biSizeImage);
200
}
201
catch (CException* e)
202
{
203
AfxMessageBox("Read File Error");
204
return FALSE;
205
}
206
return TRUE;
207
}
208![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
101
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
103
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
106
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
111
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
112
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
114
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
115
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
116
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
117
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
118
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
121
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
122
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
124
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
127
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
128
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
129
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
130
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
132
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
133
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
134
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
135
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
136
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
137
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
138
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
139
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
140
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
142
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
143
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
144
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
145
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
146
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
148
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
149
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
150
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
151
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
152
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
153
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
154
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
155
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
156
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
157
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
158
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
159
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
160
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
161
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
162
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
163
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
164
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
165
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
166
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
167
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
168
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
170
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
171
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
172
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
173
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
174
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
176
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
177
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
178
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
179
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
180
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
181
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
182
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
184
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
186
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
188
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
189
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
190
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
191
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
192
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
193
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
194
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
195
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
197
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
198
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
199
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
200
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
202
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
203
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
204
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
206
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
208
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
一个简单例子:
1
BMPSpliter spliter;
2
spliter.ReadFile("map\\Source.bmp");
3
spliter.SetDestDirectory("splitResult");
4
spliter.SetStartNumber(16);
5
spliter.Split(256,256);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)