创意终端影集

作者: zhaoolee | 来源:发表于2017-09-29 21:55 被阅读244次

    左侧效果图:

    实现思路:

    通过python的PIL库,将彩色转黑白(256种灰度),创建字符集,建立字符集与灰度的映射

    动图

    把照片裁成1:1的比例,保证显示比例正常,通过定时刷新,模拟一个动感影集

    源码

    from PIL import Image
    import os
    import time
    
    codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. '''#生成字符画所需的字符集
    count = len(codeLib)
    
    def transform_image(image_file):
        #转换为黑白图片,参数"L"表示黑白模式
        image_file = image_file.convert("L")
        codePic = ''
        #size属性表示图片的分辨率,'0'为横向大小,'1'为纵向
        for h in range(0,image_file.size[1]):
            for w in range(0,image_file.size[0]):
                #返回指定位置的像素,如果所打开的图像是多层次的图片,那这个方法就返回一个元组
                gray = image_file.getpixel((w,h))
                #建立灰度与字符集的映射
                codePic = codePic + codeLib[int(((count-1)*gray)/256)]
            codePic = codePic+'\r\n'
        return codePic
    
    def main():
    
        # 获取终端的高度
        height = os.get_terminal_size().lines
    
        # 获取同级目录文件夹下所有图片的列表
        the_names = os.listdir("./images")
    
        # 开启循环
        while 1 :
            # 遍历每张图片
            for the_name in the_names:
                try:
    
                    # 清屏幕
                    print("\n"*height)
                    # 拼合当前图片名
                    my_img = open("./images/"+the_name,'rb')
                    # 打开当前图片
                    image_file = Image.open(my_img)
                    #调整图片尺寸到原来的四分之一
                    # image_file=image_file.resize((int(image_file.size[0]*0.5), int(image_file.size[1]*0.5)))
                    image_file=image_file.resize((250, 250))
    
                    #打印图片
                    print(transform_image(image_file))
                    # 每张图片停顿5秒
                    time.sleep(5)
                except Exception as e:
                    pass
    
    if __name__ == "__main__":
        main()
    

    文章涉及到的资源我会通过百度网盘分享,为便于管理,资源整合到一张独立的帖子,链接如下:
    http://www.jianshu.com/p/4f28e1ae08b1

    相关文章

      网友评论

        本文标题:创意终端影集

        本文链接:https://www.haomeiwen.com/subject/bdewextx.html