项目需要做了一个剪切BMP图片中的字符的小程序的简单实现,由于需要的是单色显示,用的二位BMP图片,
软件构造:
1, 读取文件,
2, 获得文件中图片的信息,有效高度和宽度,
3, 进入循环处理图片中的字母:
找到一个点,
判断这个点是否在已扫描区域,如果在,继续寻找,如果不在,进行下步,
扫描上步找到的点的相邻点,
根据上步查找的相邻点,确定字符在图片中的有效区域,高始终,宽始终,保存此信息至已扫描区域,然后继续查找下一个点,
4,由于图片上的字母的同一行做成是相同高度的,可以修正字符图片的有效区域,比如 i 和 ;这两个需要修正,他们的高始终和同行的其他字符的高始终是相同的,
所以按行修正扫描区域中的有效区域,
5,按扫描区域中的有效区域对图片中的BMP数据进行剪切,根据有效区域添加文件头,将文件信息和数据写入新建BMP文件,将数据写入BIN文件,
6,处理扫描区域信息,得到数据的信息,如高、宽、数据大小,并根据此信息制作BIN文件的索引,
结束。
在制作BIN文件时,做了一些人为干预以解决下列问题:
1,分离部分的多次扫描结果需要剔除,
2,不能讲各个字符按ANSIC码存放,
主要还是字符识别问题。
所以在制作BIN文件时根据每次的图片比对,将每次扫描的数据区域进行编号,制作ANSIC码顺序表。