欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用python寫一個(gè)福字(附完整代碼)

 更新時(shí)間:2022年01月23日 17:20:09   作者:上進(jìn)小菜豬  
大家好,本篇文章主要講的是用python寫一個(gè)福字(附完整代碼),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

前言:

支付寶 2022 集五?;顒?dòng)正式開啟

數(shù)據(jù)顯示,過(guò)去六年累計(jì)參與支付寶集五福的人數(shù)已經(jīng)超過(guò)了 7 億,每 2 個(gè)中國(guó)人里就有 1 個(gè)曾掃福、集福、送福。

一,掃五?;顒?dòng)如此火爆,為何不自己利用編程來(lái)生成福字!

首先作品奉上:

在這里插入圖片描述

①,導(dǎo)入python庫(kù)

import io
from PIL import Image
import requests

②,利用爬蟲,獲取單個(gè)漢字

def get_word(ch, quality):
    fp = io.BytesIO(requests.post(url='http://xufive.sdysit.com/tk', data={'ch':ch}).content)
    im = Image.open(fp)
    w, h = im.size
    if quality == 'M':
        w, h = int(w*0.75), int(0.75*h)
    elif quality == 'L':
        w, h = int(w*0.5), int(0.5*h)
    return im.resize((w,h))

def get_word 的作用為爬取我們需要的漢字模型。
如圖:

在這里插入圖片描述

③,爬取背景底圖

def get_bg(quality):
    return get_word('bg', quality)

④,圖片格式大小,配置函數(shù)

def write_couplets(text, HorV='V', quality='L', out_file=None):
    usize = {'H':(640,23), 'M':(480,18), 'L':(320,12)}
    bg_im = get_bg(quality)
    text_list = [list(item) for item in text.split()]
    rows = len(text_list)
    cols = max([len(item) for item in text_list])
    if HorV == 'V':
        ow, oh = 40+rows*usize[quality][0]+(rows-1)*10, 40+cols*usize[quality][0]
    else:
        ow, oh = 40+cols*usize[quality][0], 40+rows*usize[quality][0]+(rows-1)*10
    out_im = Image.new('RGBA', (ow, oh), '#f0f0f0')
    for row in range(rows):
        if HorV == 'V':
            row_im = Image.new('RGBA', (usize[quality][0], cols*usize[quality][0]), 'white')
            offset = (ow-(usize[quality][0]+10)*(row+1)-10, 20)
        else:
            row_im = Image.new('RGBA', (cols*usize[quality][0], usize[quality][0]), 'white')
            offset = (20, 20+(usize[quality][0]+10)*row)
        for col, ch in enumerate(text_list[row]):
            if HorV == 'V':
                pos = (0, col*usize[quality][0])
            else:
                pos = (col*usize[quality][0],0)

            ch_im = get_word(ch, quality)
            row_im.paste(bg_im, pos)
            row_im.paste(ch_im, (pos[0]+usize[quality][1], pos[1]+usize[quality][1]), mask=ch_im)

        out_im.paste(row_im, offset)

    if out_file:
        out_im.convert('RGB').save(out_file)
    out_im.show()

⑤,成品展示

在這里插入圖片描述

二,完整代碼

完整代碼奉上,需要先安裝需要的python庫(kù)。

import io
from PIL import Image
import requests
def get_word(ch, quality):
    fp = io.BytesIO(requests.post(url='http://xufive.sdysit.com/tk', data={'ch':ch}).content)
    im = Image.open(fp)
    w, h = im.size
    if quality == 'M':
        w, h = int(w*0.75), int(0.75*h)
    elif quality == 'L':
        w, h = int(w*0.5), int(0.5*h)
    return im.resize((w,h))
def get_bg(quality):
    return get_word('bg', quality)
def write_couplets(text, HorV='V', quality='L', out_file=None):
    usize = {'H':(640,23), 'M':(480,18), 'L':(320,12)}
    bg_im = get_bg(quality)
    text_list = [list(item) for item in text.split()]
    rows = len(text_list)
    cols = max([len(item) for item in text_list])
    if HorV == 'V':
        ow, oh = 40+rows*usize[quality][0]+(rows-1)*10, 40+cols*usize[quality][0]
    else:
        ow, oh = 40+cols*usize[quality][0], 40+rows*usize[quality][0]+(rows-1)*10
    out_im = Image.new('RGBA', (ow, oh), '#f0f0f0')
    for row in range(rows):
        if HorV == 'V':
            row_im = Image.new('RGBA', (usize[quality][0], cols*usize[quality][0]), 'white')
            offset = (ow-(usize[quality][0]+10)*(row+1)-10, 20)
        else:
            row_im = Image.new('RGBA', (cols*usize[quality][0], usize[quality][0]), 'white')
            offset = (20, 20+(usize[quality][0]+10)*row)
        for col, ch in enumerate(text_list[row]):
            if HorV == 'V':
                pos = (0, col*usize[quality][0])
            else:
                pos = (col*usize[quality][0],0)

            ch_im = get_word(ch, quality)
            row_im.paste(bg_im, pos)
            row_im.paste(ch_im, (pos[0]+usize[quality][1], pos[1]+usize[quality][1]), mask=ch_im)

        out_im.paste(row_im, offset)

    if out_file:
        out_im.convert('RGB').save(out_file)
    out_im.show()
text = '福'
write_couplets(text, HorV='V', quality='M', out_file='福.jpg')

三,總結(jié)

到此這篇關(guān)于用python寫一個(gè)福字(附完整代碼)的文章就介紹到這了,更多相關(guān)python寫福字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測(cè)及keras實(shí)現(xiàn)

    python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測(cè)及keras實(shí)現(xiàn)

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測(cè)及keras實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • windowns使用PySpark環(huán)境配置和基本操作

    windowns使用PySpark環(huán)境配置和基本操作

    pyspark是Spark對(duì)Python的api接口,可以在Python環(huán)境中通過(guò)調(diào)用pyspark模塊來(lái)操作spark,這篇文章主要介紹了windowns使用PySpark環(huán)境配置和基本操作,感興趣的可以了解一下
    2021-05-05
  • python3 深淺copy對(duì)比詳解

    python3 深淺copy對(duì)比詳解

    這篇文章主要介紹了python3 深淺copy對(duì)比詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python類多重繼承方式

    Python類多重繼承方式

    這篇文章主要介紹了Python類多重繼承方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python3.7黑帽編程之病毒篇(基礎(chǔ)篇)

    Python3.7黑帽編程之病毒篇(基礎(chǔ)篇)

    這篇文章主要介紹了Python3.7黑帽編程之病毒篇(基礎(chǔ)篇),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • PyautoGui常用教程(一篇掌握)

    PyautoGui常用教程(一篇掌握)

    這篇文章主要介紹了PyautoGui常用教程(一篇掌握),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 修復(fù)CentOS7升級(jí)Python到3.6版本后yum不能正確使用的解決方法

    修復(fù)CentOS7升級(jí)Python到3.6版本后yum不能正確使用的解決方法

    這篇文章主要介紹了修復(fù)CentOS7升級(jí)Python到3.6版本后yum不能使用的問(wèn)題,本文給大家?guī)?lái)了解決方法,需要的朋友可以參考下
    2018-01-01
  • python光學(xué)仿真實(shí)現(xiàn)光線追跡之空間關(guān)系

    python光學(xué)仿真實(shí)現(xiàn)光線追跡之空間關(guān)系

    這篇文章主要介紹了python光學(xué)仿真中實(shí)現(xiàn)光線追跡的空間關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Python如何實(shí)現(xiàn)自動(dòng)發(fā)送郵件

    Python如何實(shí)現(xiàn)自動(dòng)發(fā)送郵件

    對(duì)于一些每天需要發(fā)的報(bào)表或者是需要一次發(fā)送多份的報(bào)表,我們可以考慮借助Python來(lái)自動(dòng)發(fā)送郵件。本文主要介紹了如何利用Python實(shí)現(xiàn)自動(dòng)發(fā)送郵件,感興趣的小伙伴可以了解一下
    2021-11-11
  • Python字典中的值為列表或字典的構(gòu)造實(shí)例

    Python字典中的值為列表或字典的構(gòu)造實(shí)例

    今天小編就為大家分享一篇Python字典中的值為列表或字典的構(gòu)造實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論