图形验证码库 captcha
| |
| from captcha.image import ImageCaptcha |
| |
| |
| image = ImageCaptcha(width=120, height=40, font_sizes=(30, 32, 36)) |
| chars = "1234" |
| |
| im = image.generate(chars) |
| |
| img_val = im.getvalue() |
| |
| file_name = "1.png" |
| im.save(file_name) |
二维码库 qrcode
| import qrcode |
| import os |
| |
| |
| def make_qrcode(url="test", file_name="", size=8, err_level=0): |
| if err_level == 3: |
| error_correction = qrcode.constants.ERROR_CORRECT_L |
| elif err_level == 2: |
| error_correction = qrcode.constants.ERROR_CORRECT_M |
| elif err_level == 1: |
| error_correction = qrcode.constants.ERROR_CORRECT_Q |
| else: |
| error_correction = qrcode.constants.ERROR_CORRECT_H |
| |
| |
| qr = qrcode.QRCode( |
| version=1, |
| error_correction=error_correction, |
| box_size=size, |
| border=4, |
| ) |
| |
| |
| qr.add_data(url) |
| qr.make(fit=True) |
| |
| file_content = file_name |
| |
| img = qr.make_image(fill_color="black", back_color="white") |
| |
| |
| if file_name and isinstance(file_name, str): |
| |
| img.save(file_name) |
| else: |
| |
| b = io.BytesIO() |
| img.save(b, "PNG") |
| file_content = b.getvalue() |
| |
| return file_content |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义