在开发板上Linux系统的/picture目录下,有若干文件 利用Linux系统目录操作相关知识,编程获取/picture目录下所有后缀为bmp、jpg、jpeg的图片文件名 这些图片的宽、高事先未知,需要编程获取 每隔500毫秒,清白屏,显示下一幅图片,无论图片是否超出LCD屏幕大小,都从屏幕左上角(0,0)处显示图片全部或局部 能够循环显示这些图片
时间: 2023-07-16 21:13:55 浏览: 91
嵌入式系统/ARM技术中的Linux文件查找命令(四下)
以下是一个简单的Python代码实现,可以用于获取/picture目录下所有后缀为bmp、jpg、jpeg的图片文件名,并且循环显示这些图片:
```python
import os
from PIL import Image
import time
import sys
# 获取指定路径下所有后缀为bmp、jpg、jpeg的图片文件名
def getImageFiles(path):
files = os.listdir(path)
imageFiles = []
for file in files:
if file.endswith('.bmp') or file.endswith('.jpg') or file.endswith('.jpeg'):
imageFiles.append(os.path.join(path, file))
return imageFiles
# 显示图片
def showImage(imageFile):
# 清屏
sys.stdout.write("\033[2J\033[0;0H")
# 打开图片
img = Image.open(imageFile)
# 获取图片宽高
width, height = img.size
# 循环显示图片
x = 0
y = 0
while True:
# 清屏
sys.stdout.write("\033[2J\033[0;0H")
# 计算图片显示区域
x1 = x
y1 = y
x2 = min(x + 80, width)
y2 = min(y + 24, height)
# 切割图片
region = img.crop((x1, y1, x2, y2))
# 显示图片
sys.stdout.write(region.tobytes())
# 计算下一次显示的位置
x += 80
if x >= width:
x = 0
y += 24
if y >= height:
y = 0
# 等待500毫秒
time.sleep(0.5)
if __name__ == '__main__':
# 获取图片文件名
imageFiles = getImageFiles('/picture')
# 循环显示图片
while True:
for imageFile in imageFiles:
showImage(imageFile)
```
注意事项:
1. 在Linux系统上,需要安装Pillow库来处理图片。可以使用`pip install Pillow`安装。
2. 在Linux系统上,使用`sys.stdout.write()`方法清屏并显示图片。由于使用了控制字符,因此需要在命令行中运行代码,不能在IDE中运行。
阅读全文