#!/usr/bin/env python3 """生成超时提醒通知图片""" from PIL import Image, ImageDraw, ImageFont import os # 图片尺寸(企微图片消息建议尺寸) WIDTH = 600 HEIGHT = 300 # 创建图片 img = Image.new('RGB', (WIDTH, HEIGHT)) draw = ImageDraw.Draw(img) # 绘制渐变背景(从蓝色到青色) for y in range(HEIGHT): # 计算渐变比例 ratio = y / HEIGHT # 蓝色 (0, 120, 215) -> 青色 (0, 180, 160) r = int(0 + (0 - 0) * ratio) g = int(120 + (180 - 120) * ratio) b = int(215 + (160 - 215) * ratio) draw.line([(0, y), (WIDTH, y)], fill=(r, g, b)) # 绘制标题 try: # 尝试使用系统字体 title_font = ImageFont.truetype("msyh.ttc", 36) # 微软雅黑 subtitle_font = ImageFont.truetype("msyh.ttc", 22) button_font = ImageFont.truetype("msyh.ttc", 28) except: # 回退到默认字体 title_font = ImageFont.load_default() subtitle_font = ImageFont.load_default() button_font = ImageFont.load_default() # 标题 draw.text((30, 30), "🔔 您的IT咨询即将关闭", fill=(255, 255, 255), font=title_font) # 副标题 draw.text((30, 90), "请尽快回复坐席,否则咨询将自动结束", fill=(220, 220, 220), font=subtitle_font) # 绘制3D水晶按钮 btn_x, btn_y = 30, 160 btn_w, btn_h = 540, 70 # 按钮阴影 draw.rounded_rectangle([btn_x+4, btn_y+4, btn_x+btn_w+4, btn_y+btn_h+4], radius=15, fill=(180, 180, 180)) # 按钮主体(渐变效果用多层矩形模拟) for i in range(btn_h): ratio = i / btn_h # 浅蓝色 -> 深蓝色 r = int(30 + (0 - 30) * ratio) g = int(160 + (100 - 160) * ratio) b = int(255 + (200 - 255) * ratio) draw.rectangle([btn_x, btn_y+i, btn_x+btn_w, btn_y+i+1], fill=(r, g, b)) # 按钮高光效果 draw.rounded_rectangle([btn_x, btn_y, btn_x+btn_w, btn_y+btn_h//3], radius=15, fill=(255, 255, 255, 80)) # 按钮文字 draw.text((btn_x + btn_w//2 - 70, btn_y + 20), "立即回复 →", fill=(255, 255, 255), font=button_font) # 底部提示 draw.text((30, 250), "点击上方按钮进入智能IT服务台", fill=(180, 180, 180), font=subtitle_font) # 保存图片 output_path = "/tmp/reminder_notification.png" img.save(output_path) print(f"✅ 图片已生成: {output_path}") print(f" 尺寸: {WIDTH}x{HEIGHT}")