Изображение не загружается в Python Rasbian - PullRequest
0 голосов
/ 03 июня 2019

Я получаю сообщение об ошибке при попытке загрузить изображение в python (pygame) код, который я использую - это то, что кто-то написал и доказал свою работоспособность. Я использую Orange pi, для этого запускаю raspbian, и при попытке загрузить изображение выдает ошибку.

Я несколько раз проверял путь к изображению, пробовал разные изображения и разные форматы изображений, но все возвращается к одной и той же ошибке.

#!/usr/bin/env python

import pygame
import sys
import time
from pygame.locals import *

import OPi.GPIO as GPIO
GPIO.setboard(GPIO.PCPCPLUS)
GPIO.setmode (GPIO.BOARD)
# set GPIO output pin
IP = 26

GPIO.setup(IP,GPIO.IN)
GPIO.setup(IP,GPIO.IN,pull_up_down = GPIO.PUD_UP)

# picture display size
width = 1280
height = 720

# number of pictures
pictures = 1

# picture names
pic_names = ['screen1.jpg']

# USB stick name
usb_name = "/root/pi/"


windowSurfaceObj = pygame.display.set_mode((width,height))
pygame.display.set_caption('Instructies')

x= 0
while True:

  imagefile = usb_name + pic_names[x]
  image = pygame.image.load(imagefile)
  image = pygame.transform.scale(image,(width,height))
  windowSurfaceObj.blit(image,(0,0))
  pygame.display.update()

  if GPIO.input(IP)== False:
     x +=1
     if x > pictures - 1:
        x = 0
  for event in pygame.event.get():
     if event.type == QUIT:
        pygame.quit()
        sys.exit()

     elif event.type == KEYDOWN:
        # press N for normal screen
        if event.key == K_n:
           windowSurfaceObj = pygame.display.set_mode((width,height))
           windowSurfaceObj.blit(image,(0,0))
           pygame.display.update()
        # press F for fullscreen
        if event.key == K_f:
           windowSurfaceObj = pygame.display.set_mode((width,height),pygame.FULLSCREEN)
           windowSurfaceObj.blit(image,(0,0))
           pygame.display.update()
        # press X to EXIT
        if event.key == K_x:
           pygame.quit()

Код должен открывать окно, показывать изображение, и когда определено несколько изображений, он должен переходить к следующему изображению при нажатии кнопки с помощью кнопок gpio. Последняя часть не проверена с моей стороны, так как я хочу убедиться, что изображение даже загружается, прежде чем продолжить, но оно должно работать. Изображения будут расположены в / root / pi /, это путь, который я ввел, также пробовал разные пути (которые не должны работать), но все не получается.

РЕДАКТИРОВАТЬ: Я сделал еще несколько копаний, чтобы попытаться исправить это, пока ничего не работает, но, по крайней мере, немного больше информации! Я использовал os.getcwd (), чтобы увидеть, из какой папки запускается скрипт, папка / root Я скопировал изображение в корневую папку, поэтому оно должно загрузить изображение при использовании image.load (screen1.jpg), но все равно получит ту же ошибку.

1 Ответ

0 голосов
/ 03 июня 2019

Так что в моем случае я узнал, в чем проблема, не мог найти ответ где-нибудь, просто продолжал копать.Для тех, у кого есть такая же проблема, когда все ваши пути определены правильно, и вы уверены, что изображение находится в правильной папке и т. Д., Попробуйте это: добавьте это в начало файла: import os print (listdir ('path)')) (в моем случае путь был / root)

При этом будут распечатаны все файлы в папке.Как ни странно, изображение не отображалось с расширением, а отображалось как screen1. Я подумал, что давайте попробуем это в коде без расширения, и странно, что это сработало для меня!

Если у кого-то есть объяснениеэто, пожалуйста, прокомментируйте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...