日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

利用python生成照片墻的示例代碼

瀏覽:145日期:2022-07-30 14:48:40

PIL(Python Image Library)是python的第三方圖像處理庫,但是由于其強大的功能與眾多的使用人數,幾乎已經被認為是python官方圖像處理庫了。其官方主頁為:PIL。

PIL歷史悠久,原來是只支持python2.x的版本的,后來出現了移植到python3的庫pillow,pillow號稱是friendly fork for PIL,其功能和PIL差不多,但是支持python3。本文只使用了PIL那些最常用的特性與用法,主要參考自:http://www.effbot.org/imagingbook。

Part 1:利用python生成照片墻

(1)簡要介紹思路:

(1)通過給定字符串生成一張圖片;(2)然后將該圖片的每個像素的寬擴張edge_len倍,高也擴張edge_len倍,假設edge_len=60,那么原文字圖片的每個像素就變成了60*60像素的一個圖片;(3)原文字圖片的每個像素的透明度不同,顯示文字的地方,透明度低(不透明),這2個字周邊的地方,透明度高(透明),我們根據原文字圖片每個像素的透明度,來設定放到這個像素(其實寬高已經擴大了60倍)圖片的透明度(trans_alpha方法實現)。

(2)導入庫文件

from PIL import Image, ImageDraw, ImageFontimport os

(3)由文字生成圖像

def gen_text_img(text, font_size=20, font_path=None): # args:文字內容,文字字體大小,字體路徑 font = ImageFont.truetype(font_path, font_size) if font_path is not None else None (width, length) = font.getsize(text) # 獲取文字大小 text_img = Image.new(’RGBA’, (width, length)) draw = ImageDraw.Draw(text_img) # 第一個tuple表示未知(left,up),之后是文字,然后顏色,最后設置字體 draw.text((0, 0), text, fill=(0, 0, 0), font=font) text_img.save(’./temp_pic.jpg’) return text_img

(4)透明度調節

def trans_alpha(img, pixel): ’’’ 根據rgba的pixel調節img的透明度 這里傳進來的pixel是一個四元組(r,g,b,alpha) ’’’ _, _, _, alpha = img.split() alpha = alpha.point(lambda i: pixel[-1]*10) img.putalpha(alpha) #Part2有介紹 return img

(5)根據透明度參數對放大文字圖進行像素覆蓋

def picture_wall_mask(text_img, edge_len, pic_dir='./user'): # 根據文字圖gen_text_img像生成對應的照片墻,輸入:文字圖像,各個照片邊長,照片所在路徑 new_img = Image.new(’RGBA’, (text_img.size[0] * edge_len, text_img.size[1] * edge_len)) file_list = os.listdir(pic_dir) img_index = 0 for x in range(0, text_img.size[0]): for y in range(0, text_img.size[1]): pixel = text_img.getpixel((x, y))#Part2有介紹 file_name = file_list[img_index % len(file_list)] try:img = Image.open(os.path.join(pic_dir, file_name)).convert(’RGBA’)#Part2有介紹img = img.resize((edge_len, edge_len))img = trans_alpha(img, pixel)new_img.paste(img, (x * edge_len, y * edge_len)) #指定區域替換,Part2有介紹img_index += 1 except Exception as e:print(f'open file {file_name} failed! {e}') return new_img

(6)生成照片墻

def main(text=’’, font_size = 20, edge_len = 60,pic_dir = './user', out_dir = './out/', font_path = ’./demo.ttf’): ’’’ 生成照片墻 :param text: Text of picture wall, if not defined this will generage a rectangle picture wall :param font_size: font size of a clear value :param edge_len: sub picture’s egde length ’’’ if len(text) >= 1: text_ = ’ ’.join(text)#將字符串用空格分隔開,提高展示效果 #text_ = text print(f'generate text wall for ’{text_}’ with picture path:{pic_dir}') text_img = gen_text_img(text_, font_size, font_path) # text_img.show() img_ascii = picture_wall_mask(text_img, edge_len, pic_dir) # img_ascii.show() img_ascii.save(out_dir + os.path.sep + ’_’.join(text) + ’.jpg’)

(7)函數執行與傳參

if __name__ == ’__main__’: main(text=’python’)

文件目錄結構如下,以供參考:out存放生成的照片墻,user存放貼上去的圖片。

利用python生成照片墻的示例代碼

完整代碼參考:git鏈接

(8)樣圖

利用python生成照片墻的示例代碼利用python生成照片墻的示例代碼

Part 2:圖像處理過程中中學習到的幾個知識點:

(1)python PNG圖片顯示導入庫文件

僅適用于顯示png格式的圖片

import matplotlib.pyplot as plt # plt 用于顯示圖片import matplotlib.image as mpimg # mpimg 用于讀取圖片

顯示圖片

lena = mpimg.imread(’temp_pic.png’) # 讀取和代碼處于同一目錄下的 lena.png# 此時 lena 就已經是一個 np.array 了,可以對它進行任意處理lena.shape #(512, 512, 3)plt.imshow(lena) # 顯示圖片plt.axis(’off’) # 不顯示坐標軸plt.show()

(2)PIL中圖像格式轉換img.convert()函數

在數字圖像處理中,針對不同的圖像格式有其特定的處理算法。所以,在做圖像處理之前,我們需要考慮清楚自己要基于哪種格式的圖像進行算法設計及其實現。本文基于這個需求,使用python中的圖像處理庫PIL來實現不同圖像格式的轉換。對于彩色圖像,不管其圖像格式是PNG,還是BMP,或者JPG,在PIL中,使用Image模塊的open()函數打開后,返回的圖像對象的模式都是“RGB”。而對于灰度圖像,不管其圖像格式是PNG,還是BMP,或者JPG,打開后,其模式為“L”。對于PNG、BMP和JPG彩色圖像格式之間的互相轉換都可以通過Image模塊的open()和save()函數來完成。具體說就是,在打開這些圖像時,PIL會將它們解碼為三通道的“RGB”圖像。用戶可以基于這個“RGB”圖像,對其進行處理。處理完畢,使用函數save(),可以將處理結果保存成PNG、BMP和JPG中任何格式。這樣也就完成了幾種格式之間的轉換。同理,其他格式的彩色圖像也可以通過這種方式完成轉換。當然,對于不同格式的灰度圖像,也可通過類似途徑完成,只是PIL解碼后是模式為“L”的圖像。

而對于Part 1中convert()函數的使用,推薦一篇博文Python圖像處理庫PIL中圖像格式轉換以供參考學習。

(3)img.paste()函數

第一個參數是用來覆蓋的圖片,第二個參數是覆蓋的位置,參考博文。

(4)img.getpixel()函數

查看圖像存儲值,參考博文。

(5)python圖像處理:給圖像添加透明度(alpha通道)

主要介紹img.putalpha()函數的用法,參考博文

到此這篇關于利用python生成照片墻的示例代碼的文章就介紹到這了,更多相關python生成照片墻內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美成a人片免费观看久久五月天| 老司机精品视频网| 久久青青视频| 国产v日韩v欧美v| 中文字幕在线官网| 欧美日韩国产v| 久久男女视频| 99综合视频| 亚洲三级网站| 69堂免费精品视频在线播放| 91九色综合| 国产极品模特精品一二| 精品欧美日韩精品| 精品国产99| 精品美女视频| 香蕉成人av| 视频一区欧美精品| 欧美日韩亚洲一区二区三区在线| 欧美激情在线精品一区二区三区| 精品深夜福利视频| 妖精视频成人观看www| 国产剧情在线观看一区| 欧美午夜不卡| 亚洲第一区色| 欧美1区二区| 亚洲丝袜美腿一区| 国产精品对白久久久久粗| 亚洲啊v在线| 国产欧美一区二区三区精品观看| 久久精品xxxxx| 首页国产精品| 麻豆亚洲精品| 日韩高清中文字幕一区二区| 成人久久一区| 日韩久久精品网| 久久视频精品| 亚洲香蕉久久| 你懂的国产精品永久在线| 日韩欧美一区免费| 久久国产精品久久久久久电车| 奇米亚洲欧美| 色婷婷精品视频| 日本在线成人| 日本蜜桃在线观看视频| 亚洲第一区色| 97久久亚洲| 欧美日韩免费观看视频| 久久一二三区| 精品一区二区三区中文字幕| 国产伊人精品| 国产欧美丝祙| 91久久视频| 国产麻豆一区| 欧美在线资源| 国产激情精品一区二区三区| 成人精品亚洲| 国产欧美日韩综合一区在线播放| 久久精品不卡| 国产精品白丝一区二区三区| 丝袜美腿一区| 国产香蕉精品| 免费av一区| 精品欧美日韩精品| 亚洲精品进入| 久久国产亚洲| 国产精品黄网站| 在线成人直播| 福利一区二区三区视频在线观看| 麻豆91精品| 久久夜夜操妹子| 国产精品一区二区美女视频免费看| 1000部精品久久久久久久久| 国产图片一区| 国产视频欧美| 成人在线视频区| 日本欧美久久久久免费播放网| 激情综合激情| а√在线中文在线新版| 久久精品72免费观看| 亚洲综合不卡| 久久精品在线| 麻豆一区二区99久久久久| 水蜜桃久久夜色精品一区的特点| 五月激情久久| 国产精品天堂蜜av在线播放| 首页欧美精品中文字幕| 精品国产免费人成网站| 国产精品videossex久久发布 | 日韩黄色在线观看| 激情欧美一区二区三区| 精品久久中文| 91精品美女| 免费看黄色91| 99精品视频在线| 亚洲免费福利| 精品视频自拍| 国产精品免费99久久久| 伊人精品久久| 九九久久电影| 欧美日韩一二| 久久国产电影| 日韩欧美另类一区二区| 免费视频一区二区三区在线观看 | 蜜桃久久久久久| 亚洲成人精选| 激情久久久久久| 国产99久久| 999国产精品视频| 日本精品影院| 久久九九电影| 日韩精品欧美| 99精品小视频| yellow在线观看网址| 国产videos久久| 美女高潮久久久| 欧美日韩 国产精品| 日韩精品a在线观看91| 国产精品美女久久久| 亚洲激情黄色| 精品一区欧美| 日韩亚洲国产欧美| 欧美一区二区三区高清视频| 日韩视频网站在线观看| 激情综合五月| 国产成人黄色| 日韩黄色大片网站| 久久国产小视频| 久久婷婷久久| 激情六月综合| 欧美在线资源| 伊人www22综合色| 亚洲精品极品| 国产无遮挡裸体免费久久| 久久狠狠久久| 国产欧美日韩综合一区在线播放| 欧美一区自拍| 国产精品亚洲人成在99www| 国产日产精品_国产精品毛片 | 美女在线视频一区| 精品一区视频| 亚洲综合在线电影| 免费黄色成人| 亚洲精品乱码久久久久久蜜桃麻豆 | 精精国产xxxx视频在线播放| 久久婷婷丁香| 丝袜亚洲精品中文字幕一区| 日本99精品| 久久精品国产一区二区| 日本在线啊啊| 婷婷亚洲五月色综合| 一区二区三区四区在线观看国产日韩| 日韩精彩视频在线观看| 黄色网一区二区| 在线看片不卡| 欧美天堂一区| 日韩在线观看| 视频一区视频二区中文字幕| 欧美日韩伊人| 久久91导航| 亚洲伊人精品酒店| 免费在线亚洲| 欧美影院三区| 日韩精品亚洲一区二区三区免费| 欧美激情综合| 99久久久久| 日韩一区二区三区高清在线观看| 精品欧美视频| 亚洲欧洲一区二区天堂久久| 青青草视频一区| 狠狠久久伊人中文字幕| 1000部精品久久久久久久久| 日本成人在线一区| 日韩久久精品网| 亚洲日产国产精品| 国产96在线亚洲| 在线免费观看亚洲| 国产成人精品一区二区三区在线| 日韩网站在线| 欧美1区二区| 欧美日韩国产一区精品一区| 国产日韩精品视频一区二区三区| 久久高清免费| 国产精品一国产精品k频道56| 欧美日韩精品一区二区视频| 欧美日本不卡| 国产视频亚洲| 国产91欧美| 日韩精品中文字幕吗一区二区| 超碰99在线| 日韩精品91亚洲二区在线观看| 精品三级久久| 国产精品1区| 免费人成在线不卡| 成人精品天堂一区二区三区| 日韩激情av在线| 国产99亚洲| 国产一区二区久久久久| 亚洲精品精选| 国户精品久久久久久久久久久不卡| 国产精品任我爽爆在线播放 |