Python利用图片.fromqimage()

2024-09-30 18:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试部署一个pythonweb服务器。下面代码的主要功能是生成一个QR码并将图像转换成二进制文件。你知道吗

def generate_qrcode(date, user_id):
    qr = qrcode.QRCode(
        version=1,
        error_correction=constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    base_string = config_default.configs.get('const').get('url') + '/check_in/'
    generate_string = date + '#' +user_id
    qr.add_data(base_string + generate_string, qrcode)
    qr.make(fit=True)
    img = qr.make_image()
    return Image.fromqimage(img)  # here is the place returns exception

然后将这个二进制文件发布到一个url。你知道吗

def upload_qrcode(datetime, user_id):
    url = "https://api.weixin.qq.com/cgi-bin/media/upload
    access_token = get_access_token()
    querystring = {"access_token":access_token,"type":"image"}
    files = {"media":generate_qrcode(datetime,user_id)}
    response = requests.post(url, params=querystring, files=files)

例外情况如下:

Traceback (most recent call last):
File "/Users/yudayan/Documents/myCode/pythonCode/nuobao/QRC_maker.py", line 58, in <module>
main()
File "/Users/yudayan/Documents/myCode/pythonCode/nuobao/QRC_maker.py", line 54, in main
print(upload_qrcode("sdf", "adsf"))
File "/Users/yudayan/Documents/myCode/pythonCode/nuobao/QRC_maker.py", line 47, in upload_qrcode
files = {"media":generate_qrcode(datetime,user_id)}
File "/Users/yudayan/Documents/myCode/pythonCode/nuobao/QRC_maker.py", line 32, in generate_qrcode
return Image.fromqimage(img)
File "/Users/yudayan/anaconda/lib/python3.6/site-packages/PIL/Image.py", line 2321, in fromqimage
return ImageQt.fromqimage(im)
File "/Users/yudayan/anaconda/lib/python3.6/site-packages/PIL/ImageQt.py", line 59, in fromqimage
if im.hasAlphaChannel():
File "/Users/yudayan/anaconda/lib/python3.6/site-packages/qrcode/image/pil.py", line 50, in __getattr__
return getattr(self._img, name)
AttributeError: 'Image' object has no attribute 'hasAlphaChannel'

Tags: inpyidurlimgstringlineusers