У меня есть некоторый код python, чтобы показывать изображения разных позиций и размеров, но после убийства сценария изображение остается на экране.
После python код используется для получения изображения для показа
import time, pygame, sys, signal, os
# sudo python pic.py 0 540 958 539 /home/pi/img.jpg
offset_width = int(sys.argv[1]) #0 how far off to left corner to display photos
offset_height = int(sys.argv[2]) #540 how far off to left corner to display photos
pic_width = int(sys.argv[3])-offset_width #958 #how wide to scale the jpg when replaying
pic_height = int(sys.argv[4])-offset_height #539 how high to scale the jpg when replaying
running = True
def receiveSignal(signalNumber, frame):
global running
running = False
print('Received:', signalNumber)
return
try:
pygame.init()
screen = pygame.display.set_mode((0, 0))
pygame.mouse.set_visible(False) #hide the mouse cursor
filename = sys.argv[5]
img=pygame.image.load(filename)
img = pygame.transform.scale(img, (pic_width, pic_height)) # Image size width/height
screen.blit(img, (offset_width,offset_height))
Rectangle1 = pygame.Rect(offset_width, offset_height, pic_width, pic_height)
pygame.display.update(Rectangle1)
while running:
pygame.time.wait(3000)
pygame.display.update(Rectangle1)
finally:
pygame.quit()
И в основном коде python я запускаю файл изображения (pi c .py) в фоновом режиме
os.system("python {basepath}pic.py {x1} {y1} {x2} {y2} {source} &".format(x1=config['layout'][pos]['x1'], y1=config['layout'][pos]['y1'], x2=config['layout'][pos]['x2'], y2=config['layout'][pos]['y2'], source=config['content'][pos]['source'], id=pos, basepath=basepath))
Это заставляет изображение отображаться, как и ожидалось, и тогда моей целью было сделать так, чтобы код python убивал сам себя и удалял картинку с экрана, когда я посылаю ему сигнал 10. (ps aux | grep -i pic.py | awk '{print $2}' | xargs sudo kill -10
)
Это делает код python в pi c .py выйти, но изображение останется на экране впоследствии.
Нужно ли выходить другим способом или открыть файл изображения другим способом?