<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python寫春聯(lián),這也太秀了吧!

          共 2776字,需瀏覽 6分鐘

           ·

          2022-03-06 09:03

          前言

          春聯(lián)是中國傳統(tǒng)文化中最具內(nèi)涵的元素之一,它以對仗工整、簡潔精巧的文字描繪美好形象,抒發(fā)美好愿望,是中國特有的文學(xué)形式,是華人們過年的重要習(xí)俗。

          用Python寫春聯(lián),全部代碼大約70行。代碼中用到的字模均來源于網(wǎng)絡(luò),共計1550個常用漢字。

          1.代碼中需要導(dǎo)入的模塊

          import iofrom PIL import Imageimport numpy as npimport requests


          2.下載字模

          def get_word(ch, quality):    #"""獲取單個漢字(字符)的圖片    #ch          - 單個漢字或英文字母(僅支持大寫)    #quality     - 單字分辨率,H-640像素,M-480像素,L-320像素    #"""     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))


          3.下載龍鳳呈祥背景底圖

          def get_bg(quality):    #"""獲取春聯(lián)背景的圖片"""    return get_word('bg', quality)


          4.生成春聯(lián)

          def write_couplets(text, HorV='V', quality='L', out_file=None):    #"""生成春聯(lián)     #text        - 春聯(lián)內(nèi)容,以空格斷行    #HorV        - H-橫排,V-豎排    #quality     - 單字分辨率,H-640像素,M-480像素,L-320像素    #out_file    - 輸出文件名    #"""    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()


          5.測試樣例


          5.1 普天同慶 歡度春節(jié)

          text = '普天同慶 歡度春節(jié)'write_couplets(text, HorV='V', quality='M', out_file='普天同慶.jpg')12

          5.2 年盡歲除歲月如歌 冬去春來春光似畫

          text = '年盡歲除歲月如歌 冬去春來春光似畫'write_couplets(text,?HorV='H',?quality='M',?out_file='歲月如歌.jpg')

          5.3 人世間縱有百嬌千紅 唯獨你是我情之所鐘

          text = '人世間縱有百嬌千紅 唯獨你是我情之所鐘'write_couplets(text, HorV='H', quality='M', out_file='情之所鐘.jpg')

          文鏈接:https://blog.csdn.net/xufive/article/details/104059396

          文章轉(zhuǎn)載:Python編程學(xué)習(xí)圈

          (版權(quán)歸原作者所有,侵刪)


          點擊下方“閱讀原文”查看更多

          瀏覽 33
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美毛片一区二区三区有限公司 | 日韩极品在线观看 | 青青草无码成人天堂免费 | 国产激情视频在线 | 色老板最新网址 |