Python图像转字符画源代码支持gif.py

"""Python图像转字符画.py, 本程序把图片转换成字符画,支持gif图片,即输入gif图,输出动态的gif字符画,作者:李兴球,风火轮少儿编程出品"""

from tkinter.filedialog import *
import os,sys
from image2char import *                                 # 需要此模块请联系本人

srcfolder = os.getcwd() + os.sep + "frames" + os.sep     # 帧存放文件夹
txtoutput = os.getcwd() + os.sep + "txtoutput" + os.sep  # 转为文本存放目录 
dstoutput = os.getcwd() + os.sep + "dstoutput" + os.sep  # 文本转图存放目录
if not os.path.exists(srcfolder): os.mkdir(srcfolder)
if not os.path.exists(txtoutput): os.mkdir(txtoutput)
if not os.path.exists(dstoutput): os.mkdir(dstoutput)

"出现文件选择对话框"
imagefile = askopenfilename(filetypes=[("gif files", "*.gif"),("all files", "*.*")])
if imagefile == "": sys.exit()
print(imagefile)
im = Image.open(imagefile)
size = im.size
print("图像大小:",size)

basename = os.path.basename(imagefile)
basename = os.path.splitext(basename)[0]

srcframes = splitframe(imagefile,srcfolder)        # 返回图像序列帧到srcfolder文件夹
framescount = len(srcframes)

print("帧数:",framescount)
txtfiles = [ txtoutput + (4 - len(str(i))) * "0" + str(i) + ".txt" for i in range(framescount)]
dstframes = [ dstoutput + (4 - len(str(i))) * "0" + str(i) + "_dst.png" for i in range(framescount)]
 
for i in range(framescount):
    image2char(srcframes[i],txtfiles[i],0.4)      # 源文件缩放比例
    print(imagefile + ":第",str(i+1),"帧转换完毕。")
    char2image(txtfiles[i],dstframes[i],(4*size[0],4*size[1]),"#0000ff")
    #print("字符转帧完毕。")
print()
print("开始生成字符gif图...")
mergeframe(dstframes,basename + "_字符动画.gif")

print("生成的文件名为:",basename + "_字符动画.gif")
input("按回车键结束。本程序作者:李兴球,风火轮少儿编程 www.scratch8.net")

 

图像转字符画效果如下: