123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #!/usr/bin/env python
- #version : 2024.03.14
- #language : ch
- #camera : CR5205
- from maix import camera
- from maix import display
- from maix import image #引入python模块包
- import time
- import sys
- sys.path.append('/root/')
- from CocoPi import BUTTON
- import os
- ScreenOrientation = False
- try:
- if os.path.exists("/etc/cameraSize.cfg"):
- cameraSize = True
- else:
- cameraSize = False
- except:
- cameraSize = False
- def getLcdRotation(cameraCapture):
- global cameraSize
- if cameraSize:
- return lcdRotationNew(cameraCapture)
- else:
- return lcdRotation(cameraCapture)
- def lcdRotationNew(inputImg):
- global cameraSize,ScreenOrientation
- imageRotationBuffer = inputImg.crop(0, 0, 320, 240)
- if ScreenOrientation:
- imgRotationAim = image.new(size = (240, 320))
- rotationAngle = 90
- GETROTATION = imageRotationBuffer.rotate(+rotationAngle, adjust=1)
- else:
- imgRotationAim = image.new(size = (320, 240))
- GETROTATION = imageRotationBuffer
- GETROTATION = imgRotationAim.draw_image(GETROTATION,0,0,alpha=1)
- return GETROTATION
- def lcdRotation(inputImg):
- global cameraSize,ScreenOrientation
- imageRotationBuffer = inputImg.crop(0, 0, 240, 320)
- if ScreenOrientation:
- imgRotationAim = image.new(size = (240, 320))
- rotationAngle = 180
- else:
- imgRotationAim = image.new(size = (320, 240))
- rotationAngle = 90
- GETROTATION = imageRotationBuffer.rotate(+rotationAngle, adjust=1)
- GETROTATION = imgRotationAim.draw_image(GETROTATION,0,0,alpha=1)
- return GETROTATION
- _canvas_y,_canvas_x = 0,0
- def v831_display_show_canvas(displayShow):
- global _canvas_y,_canvas_x,ScreenOrientation,cameraSize
- if ScreenOrientation:
- displayShowCanvas = image.new(size = (240, 320))
- displayShowCanvas.draw_rectangle(0,0,240,320, color=(0,0,0), thickness=-1)
- displayShowCanvas.draw_image(displayShow,_canvas_x,_canvas_y,alpha=1)
- displayShowVER = displayShowCanvas.crop(0,0,240,320)
- displayShowVER = displayShowVER.rotate(-90, adjust=1)
- display.show(displayShowVER)
- else:
- displayShowCanvas = image.new(size = (320, 240))
- displayShowCanvas.draw_rectangle(0,0,320,240, color=(0,0,0), thickness=-1)
- displayShowCanvas.draw_image(displayShow,_canvas_x,_canvas_y,alpha=1)
- display.show(displayShowCanvas)
-
- image.load_freetype("/root/preset/fonts/SourceHanSansCN-Regular.otf")
- buttonState=0
- newState=0
- oldState=0
- def buttonDetect():
- global buttonState,newState,oldState
- newState=key_C.is_pressed()
- if newState == True and oldState == False:
- buttonState=1
- elif newState == False and oldState == True:
- buttonState=2
- else:
- buttonState=0
- oldState=newState
-
- def timeStampConvert():
- timeListOutput=""
- timeListOutput = str(time.localtime().tm_year) + \
- str(time.localtime().tm_mon)+str(time.localtime().tm_mday) + \
- str(time.localtime().tm_hour)+str(time.localtime().tm_min) + \
- str(time.localtime().tm_sec)
- return timeListOutput
- key_C = BUTTON(13)
- if cameraSize==True:
- camera.camera.config(size=(320,240))
- else:
- camera.camera.config(size=(240,320))
- while True:
- buttonDetect()
- savePathHead="/root/user/img/photo_"
- savePathTail=".jpg"
- if buttonState!=2:
- img_backdrop = image.new(size=(320,240),color=(0, 0, 0)) #创建背景画布
- camera_img = getLcdRotation(camera.capture()) #从摄像头中获取一张图像
- #camera_img_capture = camera_img.crop(0, 0, 320, 240) #截取图像
- img_backdrop.draw_image(camera_img)
- img_backdrop.draw_image((image.open("/root/preset/img/camera_bfbfbf_24x24.png")).rotate(0, adjust=0),292,2,alpha=1)
- img_backdrop.draw_image((image.open("/root/preset/img/exit_ff0000_24x24.png")).rotate(0, adjust=0),288,216,alpha=1)
- v831_display_show_canvas(img_backdrop) #将图像显示出来
- else:
- img_backdrop = image.new(size=(320,240),color=(0, 0, 0)) #创建背景画布
- camera_img = getLcdRotation(camera.capture()) #从摄像头中获取一张图像
- camera_img_capture = camera_img.crop(0, 0, 320, 240) #截取图像
- # camera_img_rotate=camera_img_capture.rotate(90,adjust=1)
- camera_img_capture.save(savePathHead+timeStampConvert()+savePathTail)
- img_backdrop.draw_image(camera_img_capture.resize(280, 210),20,15)
- img_backdrop.draw_image((image.open("/root/preset/img/camera_bfbfbf_24x24.png")).rotate(0, adjust=0),292,2,alpha=1)
- img_backdrop.draw_image((image.open("/root/preset/img/exit_ff0000_24x24.png")).rotate(0, adjust=0),288,216,alpha=1)
- v831_display_show_canvas(img_backdrop) #将图像显示出来
- time.sleep(0.5)
-
|