# -*- coding: utf-8 -*-
from __future__ import division
import time,sys
import datetime
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image,ImageDraw,ImageFont
from picamera import PiCamera
line1=ImageFont.load_default()
# 引脚配置,按照上面的接线来配置
RST=17
DC=22
# 因为连的是CE0,这里的PORT和DEVICE也设置为0
SPI_PORT=0
SPI_DEVICE=0
FPS=24.007
# FPS=30
#根据自己的oled型号进行初始化,我的是128X64、SPI的oled,使用SSD1306_128_64初始化
disp=Adafruit_SSD1306.SSD1306_128_64(rst=RST,dc=DC,spi=SPI.SpiDev(SPI_PORT,SPI_DEVICE,max_speed_hz=8000000))
disp.begin()
disp.clear()
disp.display() #清屏
videos=[
{'name':'书记舞','fps':24.007,'fn':2330,'path':'shuji/video_'},
{'name':'bad apple','fps':30,'fn':6565,'path':'badapple/bad_apple_'}
]
strs="请输入编号进行选择:"
k=0
for video in videos:
strs+="【"+str(k)+":"+video["name"]+"】"
k+=1
try:
selected=int(raw_input(strs+":"))
video=videos[selected]
except:
selected=0
video=videos[selected]
fn=video["fn"]
path=video["path"]
fps=video["fps"]
interval=round(1/fps,6)
print("播放:"+video["name"]+" 帧率:"+str(fps)+"fps 帧数:"+str(fn))
try:
for i in range(1,fn+1):
begin = datetime.datetime.now()
image1=Image.open(path+str(i)+".jpg").resize((128,64)).convert('1')
disp.image(image1)
disp.display()
# if(i%10==0):
print("\r播放进度:"+str(round((i/fn)*100,1))+"%"),
sys.stdout.flush()
end = datetime.datetime.now()
ms = (end-begin).microseconds/1000000
sleep=interval-ms
time.sleep(sleep)
print("\r播放完成"),
disp.clear()
disp.display()
except IOError as e:
image1=Image.new('1',(128,64))
draw1=ImageDraw.Draw(image1)
draw1.text([0,0],e,font=line1,fill=1)
disp.image(image1)
disp.display()
disp.clear()
disp.display()