1. 程式人生 > >Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

這次不寫爬蟲,來看看如何利用Python強大的影象處理庫將女神照片轉換成字元畫。下面有請重量級女神如花登場:

 

Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

 

 

那清秀的面龐,水靈的雙眸,俏皮的雙馬尾,粉撲撲的髮卡,性感的鬍鬚還有略帶羞意的摳鼻動作,滿足了童年的我對美的無線遐想。就連背後的群演大媽也忍不住捂住口掩飾自己驚訝的表情,可見我的女神簡直美的不可方物,美的一言難盡,美的慘絕人寰!

轉換成字元畫之後大概長這樣:

進群:548377875  即可獲取精心準備的教程以及PDF呢!需要原始碼後臺私信小編哦!

Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

 

 

怎麼樣,依然是稜角分明,含情脈脈,微啟朱脣,千柔百媚,足以讓六宮粉黛黯然失色!

那麼如何完成這樣惟妙惟肖的妙筆丹青呢?用Python簡單到讓人髮指,不到20行程式碼。思路大致如下,先使用Pillow庫讀取圖片。此處需要注意,使用pip install pillow命令安裝pillow庫,但是在使用的時候卻是從PIL庫匯入相關模組。因為pillow庫是PIL(Python Image Library)的分支,相對於PIL更新較為及時,相容Python3,是影象處理的不二之選。讀取完成圖片之後需要將圖片轉換成灰度模式,灰度模式的圖色彩較為單一,容易處理。由於影象是由一個個的畫素點組成的,可以把它們看成一個個的小格子,裡面填充了色塊,利用pillow庫,可以獲取某個指定的座標處的灰度值。灰度值在0-255之間,越接近於0顏色就越暗,越接近於255顏色就越亮。由此我們可以定義一串字串,越靠前字元筆畫越複雜例如@、#、¥等,當這樣一大堆字元拼接在一起時,從遠處看,顏色就越暗,越靠後的字元筆畫越簡單例如=、+、-等,當這樣一大堆字元拼接在一起時,從遠處看,顏色就越亮。我們將指定座標處的畫素根據其灰度值替換成相對應的字元,然後拼接起來,寫入一個txt文件,將相當於使用字元臨摹了這張圖片。

完整程式碼如下:

 1"""
 [email protected]: Kevin Wong
 [email protected]: 使用pillow模組將圖片轉換成字元畫 
 [email protected]: 2018/11/04 13:54
 5"""
 6from PIL import Image
 7# 讀取圖片
 8img = Image.open("./ruhua.jpg")
 9# 將圖片轉換成灰度模式
10conv_img = img.convert("L")
11# 獲取原圖的寬高
12width, height = conv_img.size
13# 設定垂直比例係數
14vscale = 0.5
15# 將圖片等比例縮小為原來的四分之一大小
16conv_img = conv_img.resize((int(width * 0.25), int(height * 0.25 * vscale)))
17# 獲取縮小之後的圖片的寬高
18width, height = conv_img.size
19# 定義一個字串 字元筆畫由複雜到簡單
20chars = "@&$%#*+=-. "
21chars_drawing = ""
22for row in range(height):
23 for col in range(width):
24 # 獲取圖片當前位置的畫素灰度值
25 gray = conv_img.getpixel((col,row))
26 # 使用定義好的字元替換相應的灰度值處的影象
27 chars_drawing += chars[int(gray / 255 *10)]
28 chars_drawing += '
'
29with open("./ruhua.txt", 'w') as f:
30 f.write(chars_drawing)

完結,撒花,ye~

 

Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

 

 

Python奇技淫巧之將你的女神照片變成字元畫!女朋友就答應嘿嘿

 

這才是我的女朋友!