创意终端影集左侧效果图:
时间:2022-05-11
本文章向大家介绍创意终端影集左侧效果图:,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
左侧效果图:
实现思路:
通过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+'rn'
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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法