GEC210开发板Linux系统的/picture目录下,有若干文件 利用Linux系统目录操作相关知识,编程获取/picture目录下所有后缀为bmp、jpg、jpeg的图片文件名 这些图片的宽、高事先未知,需要编程获取 每隔500毫秒,清白屏,显示下一幅图片,无论图片是否超出LCD屏幕大小,都从屏幕左上角(0,0)处显示图片全部或局部 能够循环显示这些图片
时间: 2023-07-16 19:13:57 浏览: 85
粤嵌gec6818开发板项目的分享、.docx
以下是一个实现该功能的Python脚本:
```python
import os
import time
from PIL import Image
from waveshare_epd import epd7in5_V2
# 获取/picture目录下所有后缀为bmp、jpg、jpeg的图片文件名
image_files = []
for file in os.listdir('/picture'):
if file.endswith('.bmp') or file.endswith('.jpg') or file.endswith('.jpeg'):
image_files.append(file)
# 初始化屏幕
epd = epd7in5_V2.EPD()
epd.init()
epd.Clear()
# 遍历并显示每张图片
while True:
for image_file in image_files:
# 打开图片并获取宽高
image = Image.open('/picture/' + image_file)
width, height = image.size
# 清空屏幕并显示图片
epd.Clear()
if width > epd.width or height > epd.height:
# 图片尺寸大于屏幕尺寸,缩小并显示
if width / epd.width > height / epd.height:
new_width = epd.width
new_height = int(height / (width / epd.width))
else:
new_width = int(width / (height / epd.height))
new_height = epd.height
image = image.resize((new_width, new_height))
epd.display(image, x=0, y=0)
else:
# 图片尺寸小于等于屏幕尺寸,从左上角开始显示
epd.display(image, x=0, y=0)
# 等待500毫秒
time.sleep(0.5)
```
需要注意的是,以上脚本使用了waveshare_epd库来控制屏幕显示,需要先在Linux系统中安装该库。同时,该脚本仅支持显示bmp、jpg、jpeg格式的图片,如果需要支持其他格式的图片,可以在代码中添加相应的判断和处理逻辑。
阅读全文