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

已经上传百度云。

相关文章
|
7月前
|
XML Java Android开发
Android Studio App开发之使用相机拍摄照片和从相册中选取图片(附源码 超详细必看)
Android Studio App开发之使用相机拍摄照片和从相册中选取图片(附源码 超详细必看)
850 0
|
数据采集 JSON 编解码
收藏|Unsplash高清壁纸批量下载(源码+工具)!
收藏|Unsplash高清壁纸批量下载(源码+工具)!
|
存储 算法 C语言
c++游戏制作指南(二):制作一个炫酷的启动界面(c++绘图)
c++游戏制作指南(二):制作一个炫酷的启动界面(c++绘图)
519 0
|
7月前
微信小游戏制作工具中关于背景图的设置
微信小游戏制作工具中关于背景图的设置
212 0
|
计算机视觉
平面设计实验二 相册的制作与图层
平面设计实验二 相册的制作与图层
79 0
|
Java Android开发
ImagePicker在安卓上对图片的应用一例
偷得浮生半日闲,早上在逛StackOverflow的时候发现有人求助,提到了一个不怎么火的ImagePicker库:
143 0
|
机器学习/深度学习 Android开发
一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程
一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程 正如我的GitHub上的README上说的,偶然之间发现了一个接口,觉得挺有意思的,于是乎,就开始着手的写一个壁纸类应用了,其实之前就一直有这样的想法,但是奈何没有接口,我们先来看下这个项目在初期的时候的预览图 ...
1619 0
|
XML Android开发 数据格式
仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化
<div class="markdown_views"> <h1 id="仿百度壁纸客户端六完结篇之gallery画廊实现壁纸预览已经项目细节优化">仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化</h1> <hr> <h2 id="百度壁纸系列">百度壁纸系列</h2> <blockquote> <p><a href="http://
1948 0
|
Android开发 容器 数据格式
仿百度壁纸客户端(四)——自定义上拉加载实现精选壁纸墙
<div class="markdown_views"> <h1 id="仿百度壁纸客户端四自定义上拉加载实现精选壁纸墙">仿百度壁纸客户端(四)——自定义上拉加载实现精选壁纸墙</h1> <hr> <h2 id="百度壁纸系列">百度壁纸系列</h2> <blockquote> <p><a href="http://blog.csdn.net/qq_26787115/
1643 0