ZnJvbSBmbGFzayBpbXBvcnQgRmxhc2ssIHNlbmRfZmlsZQpmcm9tIFBJTCBpbXBvcnQgSW1hZ2UsIEltYWdlRHJhdywgSW1hZ2VGb250CmltcG9ydCBpbwoKYXBwID0gRmxhc2soX19uYW1lX18pCgoKZGVmIGNyZWF0ZV9jYXRfbG92ZV9pbWFnZSgpOgogICAgIyDliJvlu7rkuIDkuKrmt6HnsonoibLog4zmma/lm77lg48KICAgIGltYWdlID0gSW1hZ2UubmV3KCdSR0InLCAoNDAwLCAzMDApLCBjb2xvcj0oMjU1LCAyMjgsIDIyNSkpCiAgICBkcmF3ID0gSW1hZ2VEcmF3LkRyYXcoaW1hZ2UpCgogICAgIyDliqDovb3lrZfkvZMKICAgIHRyeToKICAgICAgICBmb250ID0gSW1hZ2VGb250LnRydWV0eXBlKCdhcmlhbC50dGYnLCAyMCkKICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgIGZvbnQgPSBJbWFnZUZvbnQubG9hZF9kZWZhdWx0KCkKCiAgICAjIOe7mOWItueMq+eMq++8iOeugOWNleeUqOWchuW9ouS7o+ihqOWktOmDqO+8jOefqeW9ouS7o+ihqOi6q+S9k+etieekuuaEj++8iQogICAgZHJhdy5lbGxpcHNlKCgxNTAsIDUwLCAyNTAsIDE1MCksIGZpbGw9J2dyYXknKSAgIyDnjKvnjKvlpLTpg6gKICAgIGRyYXcucmVjdGFuZ2xlKCgyMDAsIDE1MCwgMjIwLCAyNTApLCBmaWxsPSdncmF5JykgICMg54yr54yr6Lqr5L2TCiAgICBkcmF3LnJlY3RhbmdsZSgoMTYwLCAyMjAsIDE4MCwgMjQwKSwgZmlsbD0nZ3JheScpICAjIOeMq+eMq+WJjeiFvwogICAgZHJhdy5yZWN0YW5nbGUoKDIyMCwgMjIwLCAyNDAsIDI0MCksIGZpbGw9J2dyYXknKSAgIyDnjKvnjKvlkI7ohb8KCiAgICAjIOe7mOWItueIseW/gwogICAgaGVhcnRfeCA9IDE4MAogICAgaGVhcnRfeSA9IDI1MAogICAgaGVhcnRfcG9pbnRzID0gWwogICAgICAgIChoZWFydF94LCBoZWFydF95KSwKICAgICAgICAoaGVhcnRfeCArIDQwLCBoZWFydF95KSwKICAgICAgICAoaGVhcnRfeCArIDYwLCBoZWFydF95ICsgNDApLAogICAgICAgIChoZWFydF94ICsgMjAsIGhlYXJ0X3kgKyA2MCksCiAgICAgICAgKGhlYXJ0X3ggLSAyMCwgaGVhcnRfeSArIDQwKSwKICAgICAgICAoaGVhcnRfeCwgaGVhcnRfeSkKICAgIF0KICAgIGRyYXcucG9seWdvbihoZWFydF9wb2ludHMsIGZpbGw9J3JlZCcpCgogICAgIyDlnKjniLHlv4PlhoXlhpnlrZcKICAgIHRleHQgPSAmcXVvdDvor5for5fllpzmrKLkvaAmcXVvdDsKICAgIHRleHRfd2lkdGgsIHRleHRfaGVpZ2h0ID0gZHJhdy50ZXh0c2l6ZSh0ZXh0LCBmb250PWZvbnQpCiAgICB0ZXh0X3ggPSBoZWFydF94ICsgKDQwIC0gdGV4dF93aWR0aCkgLyAyCiAgICB0ZXh0X3kgPSBoZWFydF95ICsgKDQwIC0gdGV4dF9oZWlnaHQpIC8gMgogICAgZHJhdy50ZXh0KCh0ZXh0X3gsIHRleHRfeSksIHRleHQsIGZpbGw9J3doaXRlJywgZm9udD1mb250KQoKICAgICMg5bCG5Zu+54mH5L+d5a2Y5Yiw5YaF5a2YCiAgICBpbWdfYnl0ZV9hcnIgPSBpby5CeXRlc0lPKCkKICAgIGltYWdlLnNhdmUoaW1nX2J5dGVfYXJyLCBmb3JtYXQ9J1BORycpCiAgICBpbWdfYnl0ZV9hcnIuc2VlaygwKQogICAgcmV0dXJuIGltZ19ieXRlX2FycgoKCkBhcHAucm91dGUoJy8nKQpkZWYgZ2V0X2ltYWdlKCk6CiAgICByZXR1cm4gc2VuZF9maWxlKGNyZWF0ZV9jYXRfbG92ZV9pbWFnZSgpLCBtaW1ldHlwZT0naW1hZ2UvcG5nJykKCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgYXBwLnJ1bihkZWJ1Zz1UcnVlKQ==
from flask import Flask, send_file
from PIL import Image, ImageDraw, ImageFont
import io
app = Flask(__name__)
def create_cat_love_image():
# 创建一个淡粉色背景图像
image = Image.new('RGB', (400, 300), color=(255, 228, 225))
draw = ImageDraw.Draw(image)
# 加载字体
try:
font = ImageFont.truetype('arial.ttf', 20)
except OSError:
font = ImageFont.load_default()
# 绘制猫猫(简单用圆形代表头部,矩形代表身体等示意)
draw.ellipse((150, 50, 250, 150), fill='gray') # 猫猫头部
draw.rectangle((200, 150, 220, 250), fill='gray') # 猫猫身体
draw.rectangle((160, 220, 180, 240), fill='gray') # 猫猫前腿
draw.rectangle((220, 220, 240, 240), fill='gray') # 猫猫后腿
# 绘制爱心
heart_x = 180
heart_y = 250
heart_points = [
(heart_x, heart_y),
(heart_x + 40, heart_y),
(heart_x + 60, heart_y + 40),
(heart_x + 20, heart_y + 60),
(heart_x - 20, heart_y + 40),
(heart_x, heart_y)
]
draw.polygon(heart_points, fill='red')
# 在爱心内写字
text = "诗诗喜欢你"
text_width, text_height = draw.textsize(text, font=font)
text_x = heart_x + (40 - text_width) / 2
text_y = heart_y + (40 - text_height) / 2
draw.text((text_x, text_y), text, fill='white', font=font)
# 将图片保存到内存
img_byte_arr = io.BytesIO()
image.save(img_byte_arr, format='PNG')
img_byte_arr.seek(0)
return img_byte_arr
@app.route('/')
def get_image():
return send_file(create_cat_love_image(), mimetype='image/png')
if __name__ == '__main__':
app.run(debug=True)