我想更改用 Python 制作的 ITF 条形码的背景颜色。
我尝试了很多方法,例如在保存选项中添加“背景”:“透明”,但它不起作用。请帮忙!!!
以下代码:
def generar_codigo_barras(codigo, archivo_salida):
codebar = barcode.get_barcode_class('ITF') #Definir tipo de codbar
writer = ImageWriter()
texto = codigo[0:4] + " Y4 " + codigo[4:] #Definir escritura de código de barras
CODE = codebar(codigo, writer) #Escritura de caracteres en el código de barras
fullname = CODE.save(archivo_salida,{"module_width":.2, "module_height":15, "font_size": 6,
"text_distance": 5, "quiet_zone": 3, "background": 'transparent'},text=texto) #Definición de parámetros para código de barras
return fullname #Retorna código de barras
使用
"background": 'transparent'
是错误的,“透明”不是有效的颜色。from io import BytesIO
import barcode
from barcode import EAN13
from barcode.writer import ImageWriter
def generar_codigo_barras(codigo, archivo_salida):
codebar = barcode.get_barcode_class('ITF') # Definir tipo de codbar
# writer = ImageWriter(mode='P')
writer = ImageWriter(format="PNG", mode="RGBA")
texto = codigo[0:4] + " Y4 " + codigo[4:] # Definir escritura de código de barras
CODE = codebar(codigo, writer) # Escritura de caracteres en el código de barras
options = {"background": "rgba(255,0,0,0)"}
# fullname = CODE.save(archivo_salida, options)
fullname = CODE.save(archivo_salida, dict(
module_width=.2,
module_height=15,
font_size=6,
text_distance=5,
quiet_zone=3,
background="rgba(255,0,0,0)",
text=texto
))
return fullname
code = '5901234123457'
fn = 'image_out1'
filename = generar_codigo_barras(code, fn)
print(filename)