1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/python
- # -*- coding:utf-8 -*-
- import sys
- import os
- picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
- libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
- if os.path.exists(libdir):
- sys.path.append(libdir)
- import logging
- import time
- import traceback
- from waveshare_OLED import OLED_1in5
- from PIL import Image,ImageDraw,ImageFont
- logging.basicConfig(level=logging.DEBUG)
- try:
- disp = OLED_1in5.OLED_1in5()
- logging.info("\r 1.5inch OLED ")
- # Initialize library.
- disp.Init()
- # Clear display.
- logging.info("clear display")
- disp.clear()
- # Create blank image for drawing.
- image1 = Image.new('L', (disp.width, disp.height), 0)
- draw = ImageDraw.Draw(image1)
- font = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 12)
- font1 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
- font2 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
- logging.info ("***draw line")
- draw.line([(0,0),(127,0)], fill = 15)
- draw.line([(0,0),(0,127)], fill = 15)
- draw.line([(0,127),(127,127)], fill = 15)
- draw.line([(127,0),(127,127)], fill = 15)
- logging.info ("***draw text")
- draw.text((20,0), 'Waveshare ', font = font1, fill = 15)
- draw.text((20,24), u'微雪电子 ', font = font2, fill = 11)
- draw.text((20,64), 'Waveshare ', font = font1, fill = 7)
- draw.text((20,92), u'微雪电子 ', font = font2, fill = 3)
- image1 = image1.rotate(0)
- disp.ShowImage(disp.getbuffer(image1))
- time.sleep(3)
-
- logging.info ("***draw rectangle")
- image1 = Image.new('L', (disp.width, disp.height), 0)
- draw = ImageDraw.Draw(image1)
- for i in range(0, 16):
- draw.rectangle([(0, 8*i), (128, 8*(i+1))], fill = i)
- disp.ShowImage(disp.getbuffer(image1))
- time.sleep(3)
- logging.info ("***draw image")
- Himage2 = Image.new('L', (disp.width, disp.height), 0) # 0: clear the frame
- bmp = Image.open(os.path.join(picdir, '1in5.bmp'))
- Himage2.paste(bmp, (0,0))
- Himage2=Himage2.rotate(0)
- disp.ShowImage(disp.getbuffer(Himage2))
- time.sleep(3)
- disp.clear()
- except IOError as e:
- logging.info(e)
-
- except KeyboardInterrupt:
- logging.info("ctrl + c:")
- disp.module_exit()
- exit()
|