如何利用draw.text显示实时时间
时间: 2024-05-15 17:14:25 浏览: 16
你可以使用Python的datetime模块获取当前时间,然后使用Pillow库中的ImageDraw模块的text()函数将其显示在图像上。下面是一个示例代码:
```python
from datetime import datetime
from PIL import Image, ImageDraw, ImageFont
# 创建一个空白图像
img = Image.new('RGB', (500, 500), color = 'white')
# 创建一个ImageDraw对象
draw = ImageDraw.Draw(img)
# 获取当前时间
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
# 设置字体
font = ImageFont.truetype("arial.ttf", 36)
# 在图像上绘制时间
draw.text((200, 200), current_time, font=font, fill=(0, 0, 0))
# 显示图像
img.show()
```
这个脚本会创建一个500x500的白色图像,并将当前时间显示在其中心位置。你可以将其保存为一个.py文件并运行它来查看效果。
相关问题
树莓派oled显示时间日期和天气
要在树莓派上使用 OLED 显示屏显示时间日期和天气,你需要完成以下几个步骤:
1. 购买合适的 OLED 显示屏,例如 128x64 的 I2C OLED 显示屏
2. 安装 Adafruit_Python_SSD1306 库,这是一个 Python 库,用于控制 SSD1306 OLED 显示屏
3. 安装 Python 的 requests 库,用于从网络上获取天气信息
4. 编写 Python 脚本,用于获取当前时间、天气信息,并将它们显示在 OLED 显示屏上
以下是一个 Python 示例代码,可以实现在 OLED 显示屏上显示当前时间、日期和天气信息:
```python
import time
from PIL import Image, ImageDraw, ImageFont
import Adafruit_SSD1306
import requests
import json
# OLED 显示屏的初始化
RST = None
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()
# 创建一个图像对象
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
# 字体文件的路径
font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf"
# 字体对象的初始化
font24 = ImageFont.truetype(font_path, 24)
font16 = ImageFont.truetype(font_path, 16)
# 获取天气信息
response = requests.get("https://api.seniverse.com/v3/weather/now.json?key=your_key&location=your_location&language=zh-Hans&unit=c")
weather = json.loads(response.text)["results"][0]["now"]["text"]
# 显示时间和日期
while True:
# 获取当前时间
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 清空屏幕
draw.rectangle((0, 0, width, height), outline=0, fill=0)
# 显示时间和日期
draw.text((0, 0), now, font=font16, fill=255)
# 显示天气信息
draw.text((0, 30), weather, font=font16, fill=255)
# 刷新屏幕
disp.image(image)
disp.display()
# 暂停 1 秒
time.sleep(1)
```
在代码中,你需要将 `your_key` 替换成你自己的天气 API 密钥,将 `your_location` 替换成你想要查询天气的城市。然后运行代码即可在 OLED 显示屏上显示时间、日期和天气信息。
香蕉派oled显示当前时间
要在香蕉派上使用 OLED 显示屏显示当前时间,你需要完成以下几个步骤:
1. 购买合适的 OLED 显示屏,例如 128x64 的 I2C OLED 显示屏
2. 安装 Adafruit_Python_SSD1306 库,这是一个 Python 库,用于控制 SSD1306 OLED 显示屏
3. 编写 Python 脚本,用于获取当前时间,并将它们显示在 OLED 显示屏上
以下是一个 Python 示例代码,可以实现在 OLED 显示屏上显示当前时间:
```python
import time
from PIL import Image, ImageDraw, ImageFont
import Adafruit_SSD1306
# OLED 显示屏的初始化
RST = None
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()
# 创建一个图像对象
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
# 字体文件的路径
font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf"
# 字体对象的初始化
font24 = ImageFont.truetype(font_path, 24)
font16 = ImageFont.truetype(font_path, 16)
# 显示时间
while True:
# 获取当前时间
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 清空屏幕
draw.rectangle((0, 0, width, height), outline=0, fill=0)
# 显示时间和日期
draw.text((0, 0), now, font=font16, fill=255)
# 刷新屏幕
disp.image(image)
disp.display()
# 暂停 1 秒
time.sleep(1)
```
在代码中,我们使用了 Python 的 time 模块获取当前时间,然后通过 OLED 显示屏显示出来。你可以根据需要修改字体和字体大小,并调整显示位置。然后运行代码即可在 OLED 显示屏上显示当前时间。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)