将URL转换为二维码,并返回Base64编码的字符串

def url_to_qr_base64(url):
"""
将URL转换为二维码,并返回Base64编码的字符串。

参数:
url (str): 您想要编码成二维码的URL。

返回:
str: Base64编码的二维码图片字符串。
或 None: 如果发生错误。
"""
if not url:
return return_dict(400, "url参数不能为空")
try:
# 创建QRCode对象
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4)

# 添加URL数据到QRCode对象
qr.add_data(url)
qr.make(fit=True)

# 创建图像
img = qr.make_image(fill_color="black", back_color="white")

# 保存图像到内存中的BytesIO对象
buffered = BytesIO()
img.save(buffered, format="PNG")
buffered.seek(0)

# 进行Base64编码
img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')
return return_dict(200, "生成成功", {"base64": img_str})
except Exception as e:
return return_dict(400, f"报错信息:{e}")


相关推荐

  • 生成图片

    from PIL import Image, ImageColor, ImageDraw, ImageFont, ImageFilterdef create_image_with_text(size, color, text, font_path, font_size, text_color, shadow_color, output_path): """ Create a new image of specified size and color with centered text that has a border and shadow. :param size: A tuple con

  • 获取指定目录下的所有图片信息

    1 获取指定目录下的所有图片信息// 获取指定目录下的所有图片信息 public function getImagesInfo($directory) { $images = []; // 创建递归目录迭代器 $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY ); // 遍历目录中的每个文件 foreach (

  • Thinkphp各版本的PHP要求

    ThinkPHP 8.0:运行环境要求PHP8.0+,兼容PHP8.3ThinkPHP 6.1:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 6.0:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 5.1:运行环境要求PHP5.6+,兼容PHP8.0ThinkPHP 5.0:运行环境要求PHP5.4+,兼容PHP7.3