📄 stddataobject.h
字号:
// StdDataObject.h: interface for the CStdDataObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_STDDATAOBJECT_H__3507ABF6_3F26_11D5_B583_B75AE997F823__INCLUDED_)
#define AFX_STDDATAOBJECT_H__3507ABF6_3F26_11D5_B583_B75AE997F823__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "BmpObject.h"
#include <afxtempl.h>
class CStdDataObject : public CObject
{
public:
CStdDataObject();
virtual ~CStdDataObject();
//判断一串数据是否符合条码格式
BOOL IsValidData(UCHAR* pStr,UINT len,int CurrentRow);
//判断两个区域是否为条码起始/结束符
BOOL IsMatch(Region reg1,Region reg2);
//判断一区域是否为条码结束符
BOOL IsBarTail(Region* pReg);
//得到数据并化成位信息存入DataArray中
UINT GetLineDataB(UINT xa, UINT ya, UINT xb, UINT yb, UCHAR* BWArray);
//判断一区域是否为条码起始符
BOOL IsBarHeader(Region* pReg);
//判断一区域是否为矩形
BOOL IsRect(Region r);
//对条码像素点阵进行处理
BOOL Act();
//遍历由(xa,ya)到(xb,yb)的直线,并把点数据存入PointArray中
UINT GetLineDataA(UINT xa, UINT ya, UINT xb, UINT yb, UPOINT* PointArray);
//用递归算法实现穷尽一个区域
void EmptyRegionInXY(UINT x, UINT y, Region* pRegion);
//在条码像素点阵数据中查找所有匹配pCell的区域,并存入类的RegionList中
void FindAllCell(Cell* pCell,CList<struct _Region,struct _Region &>& RegionList);
//转换像素点为白色
void Whitten(UINT x, UINT y);
//判断像素点是否为黑色
BOOL StdIsBlack(UINT x, UINT y);
//对画点方式来绘制像素点阵中数据
//从图形对象pObj中得到数据,并存入对象的pArrayMemory中
void GetStdData(CBmpObject* pObj);
//在数据压缩模式下把条码数据转换成标准数据
void NumberModeTrans(UINT* sourcedata,char* targetdata,int num);
//在字符模式下把条码数据转换成标准数据
int TextModeTrans(int data,int *cursubmode,int *cursubchgmode);
//在条码数据C簇表中查找字符串str,并返回对应的码字
int FindData(char* str,int c,UINT c0[][2],UINT c3[][2],UINT c6[][2]);
//用于判断code所属的条码类别
int TransData(int code);
//转换条空数据到417格式
BOOL BarTo417Data(void);
//转换417格式到最终数据
BOOL D417ToEnd();
void ByteModeTrans(UINT* sourcedata,UCHAR* targetdata,int len);
BOOL GetDataFromBmpfile(CString filename);
private:
UINT mleft,mtop,mright,mroot;
public:
int Height;
int Width;
UINT dBytesPerLine; //每行数据包括的字节数
UCHAR* pEndData;
UINT* p417Data; //用于存放条码数据
CList<UCHAR*,UCHAR*>BarDataList; //模块数据列表
UCHAR* pArrayMemory; //点阵内存区域
UINT dImageHeight; //图像高度
UINT dImageWidth; //图像宽度
};
#endif // !defined(AFX_STDDATAOBJECT_H__3507ABF6_3F26_11D5_B583_B75AE997F823__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -