【Python】将代码保存为图片

前言

发现个好玩的demo记录下:将代码块保存为图片。试了多次终于找到一个中文不乱码的。

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
from html2image import Html2Image

def save_code_as_image(code_text, file_path):
    # 使用 Pygments 渲染代码为 HTML
    lexer = PythonLexer()
    formatter = HtmlFormatter(style='colorful', full=True, cssclass='code')
    html_code = highlight(code_text, lexer, formatter)
    # 将 HTML 转换为图片
    # 这里直接处理图片转换,避免使用额外的库
    hti = Html2Image()
    hti.screenshot(html_str=html_code, save_as='temp.png', size=(768,824))



# 示例代码
code_text = """
if __name__ == "__main__":
    # 配置Kafka管理客户端
    topic = 'car_plate_mask'
    admin_client = KafkaAdminClient(
        bootstrap_servers=['127.0.0.1:9092'],  # Kafka broker地址
        client_id='test'
    )
    try:
        # # 定义要创建的主题
        topic_list = [NewTopic(name=topic, num_partitions=1, replication_factor=1)]
        # 创建主题
        admin_client.create_topics(new_topics=topic_list, validate_only=False)
        print("主题创建成功")
    except Exception as e:
        traceback.print_exc()
        # # 查询所有主题
        topics = admin_client.list_topics()
        print("所有主题:", topics)
    # 初始化Redis
    try:
        r = redis.Redis(host='localhost', port=6379, decode_responses=True)
    except Exception as e:
        traceback.print_exc()
    # 配置Kafka生产者
    producer = KafkaProducer(
        bootstrap_servers=['127.0.0.1:9092'],  # Kafka broker地址
        value_serializer=lambda v: json.dumps(v).encode('utf-8')  # 将消息序列化为JSON格式
    )
    # 配置Kafka消费者
    consumer = KafkaConsumer(
        topic,  # 要消费的主题
        bootstrap_servers=['127.0.0.1:9092'],  # Kafka broker地址
        auto_offset_reset='earliest',  # 从最早的消息开始消费
        enable_auto_commit=False,  # 自动提交偏移量
        group_id='test-group',  # 消费者组ID
        value_deserializer=lambda v: json.loads(v.decode('utf-8'))  # 将消息反序列化为JSON格式
    )
    # 模型初始化后马上冲击运行三次将资源占用曲线加速到稳定运行状态
    picurl_temp = "https://xxx.jpg"
    color_temp = "-1"
    for i in range(3):
        try:
            car_plate_mask(picurl_temp, color_temp)
            logger.info("Model Init and Run!")
        except:
            logger.info("Model Init and NOT Run!")
    p = Thread(target=task, args=())
    p.start()
    application.listen(8012)
    tornado.ioloop.IOLoop.instance().start()
"""

# 保存代码为 PNG 文件
save_code_as_image(code_text, 'code_image.png')

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RockWang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值