我正在尝试调整条形码输出的大小
import barcode
from barcode.writer import ImageWriter
bar_class = barcode.get_barcode_class('code128')
barcode = '1234567890'
writer=ImageWriter()
writer.set_options({module_width:2, module_height:2})
code128 = bar_class(barcode, writer)
code128.save('filename')
我得到的错误是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'module_width' is not defined
我不太了解如何使用此处的文档:https://pythonhosted.org/pyBarcode/writers/index.html
答案 0 :(得分:1)
生成任意大小的图像后,可以使用PIL
import barcode
from barcode.writer import ImageWriter
import PIL
from PIL import Image
bar_class = barcode.get_barcode_class('code128')
barcode = '1234567890'
writer=ImageWriter()
code128 = bar_class(barcode, writer)
code128.save('filename')
to_be_resized = Image.open('filename.png')
newSize = (500, 300) # new size will be 500 by 300 pixels, for example
resized = to_be_resized.resize(newSize, resample=PIL.Image.NEAREST)
resized.save('filename_resized.png')
答案 1 :(得分:1)
我通过更改此行解决了这个问题
code128.save('filename', {"module_width":0.35, "module_height":10, "font_size": 18, "text_distance": 1, "quiet_zone": 3})
不使用其他图书馆。
答案 2 :(得分:1)
我完全这样解决了我的问题,保存时我是这样定义的:
ean = barcode.get('ean13', setbarcodehere, writer=ImageWitoutTextWriter())
filename = ean.save(setfilenamehere, {"module_width":0.35, "module_height":10, "font_size": 18, "text_distance": -3, "quiet_zone": 1})
filename
print('Done! :D, {}'.format(filename))
我在 python 条码模块上做了很多工作。 如果有人需要帮助,我随时待命。