使用python-barcode生成一维码

1.安装python包

pip install Pillow
pip install python-barcode

2.实例程序

# -*- coding: utf-8 -*-import barcode
import random
from barcode.writer import ImageWriter
import os
from PIL import Image#生成一维码的类型的种类
"""
[u'code39', u'code128', u'ean', u'ean13', u'ean8', u'gs1', u'gtin',u'isbn', u'isbn10', u'isbn13', u'issn', u'jan', u'pzn', u'upc', u'upca']
"""#生成一维码,参数:码类型、码内容、文件名(文件名后缀自动加.png)
def barcode_to_png(barcode_type,text_str,filename):EAN = barcode.get_barcode_class(barcode_type) #设置生成一维码的类型ean = EAN(text_str, writer=ImageWriter())ean.save(filename)#8个一维码进行2*4的方式合并存成一张图,参数:码类型、文件数量
def barcode_fun(barcode_type,file_num):for i in range(8*file_num):r_num = random.randint(100000000000000, 999999999999999)barcode_to_png(barcode_type,str(r_num),'./code/'+barcode_type+'/'+str(i))if( (i+1)%8 == 0 ):base_img0 = Image.open('./code/'+barcode_type+'/'+str(i-7)+'.png')base_img1 = Image.open('./code/'+barcode_type+'/'+str(i-6)+'.png')base_img2 = Image.open('./code/'+barcode_type+'/'+str(i-5)+'.png')base_img3 = Image.open('./code/'+barcode_type+'/'+str(i-4)+'.png')base_img4 = Image.open('./code/'+barcode_type+'/'+str(i-3)+'.png')base_img5 = Image.open('./code/'+barcode_type+'/'+str(i-2)+'.png')base_img6 = Image.open('./code/'+barcode_type+'/'+str(i-1)+'.png')base_img7 = Image.open('./code/'+barcode_type+'/'+str(i)+'.png')x = base_img0.size[0]y = base_img0.size[1]target = Image.new('RGBA', (2*x,4*y), color=0)target.paste(base_img0,(0,0,x,y))target.paste(base_img1,(x,0,2*x,y))target.paste(base_img2,(0,y,x,2*y))target.paste(base_img3,(x,y,2*x,2*y))target.paste(base_img4,(0,2*y,x,3*y))target.paste(base_img5,(x,2*y,2*x,3*y))target.paste(base_img6,(0,3*y,x,4*y))target.paste(base_img7,(x,3*y,2*x,4*y))target.save('./code/'+barcode_type+'/'+barcode_type+"_"+str((i+1)/8)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-7)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-6)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-5)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-4)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-3)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-2)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-1)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i)+'.png')#主函数设置需要生成码类型的目录,生成相应码。
if __name__=="__main__":os.system("mkdir -p ./code")os.system("mkdir -p ./code/code128")os.system("mkdir -p ./code/EAN13")os.system("mkdir -p ./code/code39")os.system("mkdir -p ./code/upca")code128 = 'code128'ean13   = 'EAN13'code39  = 'code39'upca    = 'upca'barcode_fun(code128,10)barcode_fun(ean13,10)barcode_fun(code39,10)barcode_fun(upca,10)

3.结果
在当前目录下的code目录下生成了相应的目录和文件

code128_1.png作为实例展示效果为:

python使用python-barcode生成任意长度字符串的条形码(一维码)详细教程相关推荐

  1. php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...

    [php]代码库 /* * 生成随机字符串的类,默认只包含数字.大小写字母 */ class randomString { /* * 生成的字符串包含的字符设置 */ const NUMERIC_ON ...

  2. python实现给定信号生成任意信噪比的带噪声信号

    python实现给定信号生成任意信噪比的带噪声信号 产生叠加高斯白噪声的带噪语音 功能: 输入x为需加噪的信号,是一个numpy的1D张量 输入snr为设定信噪比,单位为dB,是一个32为的float ...

  3. python使用fpdf将生成的长字符串手动换行写入pdf

    python使用fpdf将生成的长字符串手动换行写入pdf 目录 python使用fpdf将生成的长字符串手动换行写入pdf #lassocv生成特征系数dataframe

  4. 对任意长度字符串,删除其中的任意的N(N=0)个字符

    搜狗2018校招 题目描述: 搜狗汪仔机器人在参加一站到底节目录制时,被问到一个问题:"对任意长度字符串,删除其中的任意的N(N>=0)个字符,能形成多少种不同的子字符串呢?" ...

  5. Python基于CRNN&CTPN的文本检测系统(源码&教程)

    1.背景 文本是人类最伟大和最具影响力的发明之一,是人类智慧的结晶,是人类文化.思想传承的一种基本的表达方式和不可或缺的载体.在21世纪,文本与日常生活密切相关.描述.理解万事万物,表达情感,与他人交 ...

  6. Python条码识别:使用Python进行条形码识别的详细教程

    Python条码识别:使用Python进行条形码识别的详细教程 身处数字化时代,条形码作为重要的物流标识符,已经广泛应用于各行各业.对于条形码的识别,在Python中,有许多开源库可以使用,例如Zba ...

  7. Python基于Opencv的鱼群密度速度检测系统(源码&教程)

    1.研究背景 智慧渔业是大数据.物联网与人工智能等现代信息技术驱动下的渔业发展新模式,是水产养殖业供给侧结构性改革的重要方式,涉及养殖环境监测.生物环境监测与生物状态监测这几大方面的应用与需求.本文从 ...

  8. mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解

    mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解 mybatis-generator自动生成带中文注释POJO类和增删改查,idea和eclipes都可以使用 MyC ...

  9. python正弦函数拟合_python生成任意频率正弦波方式

    如下所示: def signal_xHz(A, fi, time_s, sample): return A * np.sin(np.linspace(0, fi * time_s * 2 * np.p ...

最新文章

  1. 天津大学火速解聘学术不端教授!退学研究生123页PDF实名举报,控诉利用职权为女儿留学铺路...
  2. 不对全文内容进行索引的 Loki 到底优秀在哪里
  3. 调用webservice时提示对操作的回复消息正文进行反序列化时出错
  4. 网络进阶:用了HTTPS就安全了吗?HTTPS 会被抓包吗?
  5. 优秀编程网站收录集锦
  6. error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
  7. crontab 定时备份 出现permission:denied
  8. java应用中spring自动注入_Spring自动注入的几种方式
  9. 设置webstorm实时预览看这一篇就够了,5分钟解决!!
  10. 详解文本分类之DeepCNN的理论与实践
  11. 4.2 set和multiset
  12. 显示 think-cell 用户界面时出现错误
  13. java修改jpg图片、mp3音频文件的后缀名
  14. axure 倒计时_Axure倒计时效果
  15. 新西兰计算机预科学费,新西兰留学预科学费
  16. 小米6无线显示无法连接服务器,小米手机:无法连接WiFi怎么解决?
  17. 利用input[type=range]制作一个简易的音乐播放器
  18. Mockplus演示和分享原型的8种方式
  19. 四个厚膜高阻抗电阻测量
  20. VScode+Latex (Recipe terminated with fatal error: spawn xelatex ENOENT)和latex简单使用介绍

热门文章

  1. Java 使用 POI 操作 Excel
  2. ubuntu系统设置开机自启动
  3. EntitySpaces2009的开发文档地址
  4. c#输入三个数选出最大的_C#写一个输入三个整数,按大到小顺序输出的小程序...
  5. ssm实训报告心得_Java开发学习心得(一):SSM环境搭建
  6. eplan连接定义点不显示_EPLAN电气图实例--控制柜(控制面板)
  7. linux 恢复操作系统,如何恢复Linux操作系统的GRUB引导程?
  8. 茱莉亚分形_茱莉亚的NaN Constant
  9. elispce导入java项目_emacs的java编程环境设置(jdee,lib,cedet,ecb
  10. 胃癌2019csco指南_2019 CSCO胃癌诊疗指南精华来了!