我正在尝试使用以下代码生成条形码,但输出模糊且不可读。
def barcode(self, request, pk):
d = BarCodeGenerator(pk)
binaryStuff = d.asString('gif')
return HttpResponse(binaryStuff, 'image/gif')`
和BarCodeGenerator
类
class BarCodeGenerator(Drawing):
def __init__(self, text_value, *args, **kw):
barcode = createBarcodeDrawing('Code128', value=text_value, barHeight=10*mm, humanReadable=False)
Drawing.__init__(self,barcode.width,barcode.height,*args,**kw)
self.add(barcode, name='barcode')
答案 0 :(得分:2)
这里的问题是您正在堆叠Drawing
个对象。为了获得条形码的二进制Gif,只需执行以下操作即可:
# Create barcode with the size based on barHeight and barWidth
barcode = createBarcodeDrawing('Code128', value="data", barHeight=10 * cm, barWidth=2 * mm)
# Create the gif binary for the barcode Gif
binary = barcode.asString('gif')
# Write is to a file for easy testing
newFile = open("barcode.gif", "wb")
newFile.write(binary)
在这种情况下的结果看起来像这样,应该是可扫描的。如果您需要调整大小,请更改barHeight
和barWidth
,而不是重新调整图像大小,因为这可能会使边缘繁琐,因此无法扫描。