1 简介
potrace是由Dalhousie University的Peter Selinger开发一款位图轮廓矢量化软件,该软件源码是可以公开下载的,详细见项目主页:http://potrace.sourceforge.net/,作者的论文也已有人翻译成中文见:http://blog.csdn.net/linxinboy/article/details/19020917。
2 总体架构
2.1 主函数main
主函数main主要包括两个主要功能函数dopts和process_file,前者用于处理用户提供的程序参数,后者用于处理输入的bmp文件并将结果写入到相应的输出文件,后边主要对process_file进行剖析。
2.2 process_file
该函数实现了程序的主要功能,仍然按照4个主要的功能函数对该部分进行分析。
2.2.1 bm_read
该函数读取输入位图文件,并根据位图文件生成potrace_bitmap_t结构体,该结构体保存着原始位图的宽高信息及原图的二值化数据,注意这里的二值化数据0表示白色背景1表示黑色前景。
2.2.2 potrace_trace
该函数中有两个主体功能函数bm_to_pathlist和process_path,前者由二值化后的位图数据得到path_t结构体,后者进一步处理该结构体!