python動圖製作字符圖

效果圖放不了了,沒想到gif圖內存很大,可惜了,不能一睹坤坤風采。

源碼在此:我將一張caixukun打籃球的動圖處理成字符動圖

from PIL import Image,ImageSequence,ImageDraw
import numpy as np
import os
import imageio
img=Image.open('d:/111.jpg')
img.resize((100,100))
#
w,h=img.size
#讀取動圖各個幀
iter=ImageSequence.Iterator(img)
#拷貝,並轉成灰度圖
imgs=[frame.copy().convert('L') for frame in iter]
#設定不少於27個字符
s='abcdefghijklmnopqrstuvwxyz%-$'
#將像素映射爲字符,這裏去0-9像素對應a,依次類推
def color_to_char(num):
	index=num//10+1
	return s[index]
#將圖片轉爲字符圖
def changeImg(img,index):
	data=np.array(img)
	#開始創建字符圖了
	new_img=Image.new('1',(w*2,h*2),color=255)
	draw=ImageDraw.Draw(new_img)
	for i in range(0,h,4):
		for j in range(0,w,4):
			ch=color_to_char(data[i,j])
			#鬆散一些較好看
			draw.text((j*2,i*2),ch)
	#保存字符圖
	new_img.save('d:/caixukun/%d.png'%index)

#字符圖存儲
idx=0
for frame in imgs:
	changeImg(frame,idx)
	idx+=1

#創建gif
path='d:/caixukun/'
imgs=[]
for file in os.listdir(path):
	imgs.append(imageio.imread(os.path.join(path,file)))
imageio.mimsave('d:/caixukun.gif',imgs,'GIF',duration=0.1)






 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章