这种条形码是用什么编码的?

Lingxy 2013-10-24 08:33:49
http://img.my.csdn.net/uploads/201310/24/1382617666_3797.jpg
这种条形码是用什么编码的?
不是Code128C好奇怪。
另外怎么生成这种编码

谢谢
...全文
640 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lingxy 2013-12-17
  • 打赏
  • 举报
回复
引用 13 楼 zhuyf87 的回复:
Code 128C 确实是只能对长度为偶数的数字串编码,但Code 128还有一种优化编码的措施,叫做Code128Auto比如: 95270078 字符个数为偶数,采用 CODEC最优,编码方式为: StartC + 95 + 27 + 00 + 78 +校验 + Stop 如果宇符再增加一位,假设是 952700780。 可以修改为: StartC + 95 + 27 + 00 + 78 + CODEB + 0 + 校验 + Stop 楼主的条码是15个数字,莫非是用了Code128Auto
我能实现ABC了现在就是不知道怎么实现这种AUTO了~求算法~!!!
zhuyf87 2013-12-13
  • 打赏
  • 举报
回复
Code 128C 确实是只能对长度为偶数的数字串编码,但Code 128还有一种优化编码的措施,叫做Code128Auto比如: 95270078 字符个数为偶数,采用 CODEC最优,编码方式为: StartC + 95 + 27 + 00 + 78 +校验 + Stop 如果宇符再增加一位,假设是 952700780。 可以修改为: StartC + 95 + 27 + 00 + 78 + CODEB + 0 + 校验 + Stop 楼主的条码是15个数字,莫非是用了Code128Auto
worldy 2013-12-12
  • 打赏
  • 举报
回复
最简单就是将字符转换为对应的条码 复杂点的就是按编码绘画窄条宽条
Lingxy 2013-12-12
  • 打赏
  • 举报
回复
引用 6 楼 hfwoaiwfy 的回复:
就是CODE128, #define BCENCODE_API // 系统支持的条码码制,用于nBType参数 #define CODE39 1L #define EAN13 2L #define CODE128 3L #define CODE25 4L #define ITF25 5L #define UPCA 6L #define EAN8 7L #define UPCE 8L #define MATRIX25 9L #define EAN128 10L #define CODEBAR 11L #define CODE93 12L #define FULLASCII39 13L #define PDF417 14L #define QRCODE 15L #define CODE128M 16L #define ADDON2 17L #define ADDON5 18L #define CODE128A 19L #define CODE128B 20L #define CODE128C 21L #define DATAMATRIX 22L 其他的code128A,B,C等
能不能给个例子怎么生成?
zhuyf87 2013-12-12
  • 打赏
  • 举报
回复
先把字符转换成 Bar/Space,然后调用GDI 的画线API一条一条画出来就可以了。
zhuyf87 2013-12-12
  • 打赏
  • 举报
回复
楼主贴的图,就是Code 128 C码吧。 从图中可以看到,头是:211232 ,尾是:2331112
hfwoaiwfy 2013-12-12
  • 打赏
  • 举报
回复
我用的BCEncode.dll,头文件,导入库就不说了 直接附上源码 CString ctr_p="123456789012345";//这个就是要打印的字符

DWORD  err = 0;
HBITMAP hBitmap=MakeBarcodeText(CODE128,		//	条码类型
	ctr_p,	//	条码内容
	2,//窄单元宽度
	5,
	50, 
	size.cx/5,	//	文字的间距
	ROTATE_0,
	READABLE_CENTER,		//	文字的位置
	"黑体",	//	字体
	size.cy/3,		//	文字高度
	size.cy/5,		//	文字与条码距离
	ctr_p,		//	文字内容
	2,		//	条码图像X方向空白
	2,		//	Y方向空白
	&err);
//一下是直接填充到打印页面显示				
BITMAP bitmap;
::GetObject(hBitmap,sizeof(BITMAP),&bitmap);

HDC dcMem;
dcMem= ::CreateCompatibleDC(pDC->m_hDC);
HBITMAP hOldBmp=(HBITMAP)::SelectObject(dcMem,hBitmap);//将位图选入内存设备上下文
				
int nVertCenterPos = pDC->GetDeviceCaps (VERTRES) / 2;
::StretchBlt(pDC>m_hDC,353,54,bitmap.bmWidth,bitmap.bmHeight,dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);//条码上移16
					
::DeleteDC(dcMem);
::DeleteObject(hBitmap);
kwfly 2013-12-12
  • 打赏
  • 举报
回复
条码生成很简单的,按照编码标准,这个可以去下载国标。 CODE128的有国标的,然后按照要求对字符进行转换一个字符对应几个黑白相间的条,或者两个字符对应几个黑白相间的条(CODE128C),推荐参考网址为: http://www.codeproject.com/Articles/2438/Drawing-Barcodes-in-Windows-Part-5-Code-128
hfwoaiwfy 2013-12-09
  • 打赏
  • 举报
回复
就是CODE128, #define BCENCODE_API // 系统支持的条码码制,用于nBType参数 #define CODE39 1L #define EAN13 2L #define CODE128 3L #define CODE25 4L #define ITF25 5L #define UPCA 6L #define EAN8 7L #define UPCE 8L #define MATRIX25 9L #define EAN128 10L #define CODEBAR 11L #define CODE93 12L #define FULLASCII39 13L #define PDF417 14L #define QRCODE 15L #define CODE128M 16L #define ADDON2 17L #define ADDON5 18L #define CODE128A 19L #define CODE128B 20L #define CODE128C 21L #define DATAMATRIX 22L 其他的code128A,B,C等
Lingxy 2013-11-01
  • 打赏
  • 举报
回复
引用 3 楼 tiantian1980 的回复:
Code 128 我用“我查查”扫出来的结果
Code128 分 Code128A、Code128B 和Code128C 从长度来看很像是Code128C 可是Code128C位数必须是偶数,这个15位明显不对呀· Code128A和Code128B更加不对了长度都不一样~
liantanqing 2013-10-28
  • 打赏
  • 举报
回复
谁来解释一下,我也想知道
tiantian1980 2013-10-28
  • 打赏
  • 举报
回复
Code 128 我用“我查查”扫出来的结果
Bahdisd 2013-10-27
  • 打赏
  • 举报
回复
很感兴趣,但没研究过,观望~
Lingxy 2013-10-24
  • 打赏
  • 举报
回复

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧