【问题标题】:Grouping images to one image将图像分组为一张图像
【发布时间】:2014-12-15 22:40:21
【问题描述】:

我尝试使用QrCode for Python 生成一个二维码,并且我尝试将其用于很多对象,那么有没有任何自动方法可以将生成的大量图像分组到一个组中,例如,这将是可能的,打印它(而不是手动将它们分组到 A4 纸中)。

【问题讨论】:

    标签: python python-imaging-library qr-code pillow


    【解决方案1】:

    如果您将 PNG 文件导出到某个地方,您可以轻松地再次读取它们并将其打印为 PDF。有一个名为 reportlab 的库非常棒,因为它支持图像绘制。

    所以我在这里提供一个示例代码:

    我正在生成一个 PNG 文件,然后我将它放在画布上,您可以随意更改大小和分组。

    from reportlab.pdfgen import canvas
    from reportlab.lib.units import inch, cm
    
    #Create A QR-Code
    import qrcode
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data('Some data')
    qr.make(fit=True)
    
    img = qr.make_image()
    image_file = open("test.png",'w+')
    img.save(image_file, "PNG")
    
    #Draw the generated Code on a PDF Canvas
    c = canvas.Canvas('ex.pdf')
    
    #Add Single Images
    #c.drawImage('test.png', 0, 0, 10*cm, 10*cm)
    #c.drawImage('test.png', 10*cm, 10*cm, 10*cm, 10*cm)
    
    #Add Images in a loop
    for x in range (0, 3):
    for y in range (0, 3):
        c.drawImage('test.png', x*10*cm, y*10*cm, 10*cm, 10*cm)
    
    c.showPage()
    c.save()
    

    【讨论】:

    • 你可以用reportlab在mac上安装问题,stackoverflow.com/questions/2252726/…这个帖子可以解决。
    • 现在剩下的唯一问题是用一张纸划分画布以制作确切数量的图像,谢谢,顺便说一下,这里是windows安装lfd.uci.edu/~gohlke/pythonlibs/#reportlab
    • 当您知道您的二维码缩略图的确切大小时,这可以很容易地完成。只需引入两个 for 循环,一个用于 x 和 y
    【解决方案2】:

    创建您需要的总大小的图像,然后使用paste 将每个 QR 图像放入主图像。 box 参数用于指定在主图像中定位 QR 的左上角坐标。

    【讨论】:

    • 我能得到多少?我猜是有限的?因为我必须使用主人作为相对来源?或者我可以制作一个两倍于距离的值?
    • @Abdelouahab 将母版设置为一张纸的大小(或者可能更小),您可以放置​​尽可能多的纸张。
    • 对不起,我误解了这个想法,我以为我使用第一个图像,然后附加到她,而不是附加到空白图片并用所有生成的图像填充,再次感谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    相关资源
    最近更新 更多