Python条码透明背景

问题描述 投票:0回答:1

我想更改用 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
python background transparent
1个回答
0
投票

使用

"background": 'transparent'
是错误的,“透明”不是有效的颜色。
阅读文档时,需要将 Imagewriter 模式更改为“RBGA”以设置透明度。

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)
© www.soinside.com 2019 - 2024. All rights reserved.