pil PIL 创建壁纸,非主流壁纸,

简介: pil PIL 创建壁纸,非主流壁纸,

代码:

"""
创建壁纸:背景色,然后写非主流文字
"""
import requests
import random
import json
import time
from PIL import Image,ImageDraw,ImageFont


def get_text():
    """

    :return:
    """
    # 毒鸡汤和正能量
    # https: // data.zhai78.com / openOneGood.php
    # https: // data.zhai78.com / openOneBad.php
    urls = ['https://data.zhai78.com/openOneGood.php','https://data.zhai78.com/openOneBad.php']
    url = random.choice(urls)
    res = requests.get(url)
    res_dict = json.loads(res.text)
    print(res_dict['txt'])
    msg = res_dict['txt']
    return msg

def form_text(msg):
    """
    格式化字体,就是换行
    :param msg:
    :return:
    """
    msg = msg.replace(",","\n\n")
    msg = msg.replace(",","\n\n")
    msg = msg.replace("?","\n\n")
    msg = msg.replace("!","\n\n")
    msg = msg.replace(";","\n\n")
    msg = msg.replace("。","...\n")
    return msg



def create_feizhuliu_bizhi(msg,text_font,width_and_height=(1280,720),bg_color='#CD5555',path="images/",text_color='#6699ff'):
    """

    """

    # 1.首先创建一个画布
    img = Image.new(mode="RGB", size=width_and_height, color=bg_color)

    # 设置字体
    draw = ImageDraw.Draw(img)

    # 让字体在正确的位置居中显示
    font_width, font_height = draw.textsize(form_text(msg), text_font)
    draw.text(
        (width_and_height[0]/2 + (0 - font_width - text_font.getoffset(msg)[0]) / 2,
         width_and_height[1]/2 + (0 - font_height - text_font.getoffset(msg)[1]) / 2),
        # (1000,0),
        form_text(msg),
        text_color,
        text_font
    )

    # 保存照片
    path = path + msg + ".png"
    img.save(path)
    img.close()
    return

# 颜色集合和字体集合
text_colors = [
    '#F0FFF0'
             ]
bg_colors = [
    '#363636',
    '#6C7B8B',
    '#4F4F4F'
]
text_fonts = [
    '华文中宋',
    '华文仿宋',
    '华文彩云',
    '华文新魏',
    '华文楷体',
    '华文琥珀',
    '华文细黑',
    '华文细黑',
    '华文细黑',
    '华文行楷',
    '华文隶书',
]


while True:
    try:
        time.sleep(random.randint(1,3))
        # 字体格式
        font_medium_type = 'fonts/' + random.choice(text_fonts) + '.ttf'
        text_font = ImageFont.truetype(font_medium_type, 80)  # 设置字体
        create_feizhuliu_bizhi(
            get_text()
            , text_font,
            bg_color=random.choice(bg_colors),
            text_color=random.choice(text_colors)
        )
    except:
        print("获取不到数据")

View Code

已经上传百度云。

相关文章
|
4月前
|
定位技术
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
52 0
|
4月前
|
存储 Python
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
56 0
|
存储 算法 C语言
c++游戏制作指南(二):制作一个炫酷的启动界面(c++绘图)
c++游戏制作指南(二):制作一个炫酷的启动界面(c++绘图)
439 0
Photoshop制作白色可爱音乐播放图标面板(一)
Photoshop制作白色可爱音乐播放图标面板
78 0
|
4月前
如何用Qt抠一个圆形头像出来
如何用Qt抠一个圆形头像出来
|
自然语言处理 C++
制作有道词典——标题栏
制作有道词典——标题栏
制作有道词典——标题栏
Qt-网易云音乐界面实现-9 照片墙功能
最近车也买了,不过倒是没有想象的那么开心,车真的是想消耗品啊。
198 0
Qt-网易云音乐界面实现-9 照片墙功能
|
存储 Shell
制作开机动画
前言:产品爆出开机动画不流畅的bug,于是和美工切了108个罗汉来,接下来就要看一下如何制作开机动画了 1.建立三个文件夹 temp_bootanimation.
1106 0