
[code]

    import pygame
    from pygame.locals import*
    import sys
    
    def main():
        (w,h)=(400,400)
        (x,y)=(200,200)
        pygame.init()
        screen=pygame.display.set_mode((w,h),0,32)
        screen=pygame.display.get_surface()
        pygame.display.set_caption("Pygame Test")
    
        bg= pygame.image.load("C:\prog\python\pygame\\bg.png").convert_alpha
        rect_bg=bg.get_rect()
    
        player=pygame.image.load("C:\prog\python\pygame\player.png").convert_alpha
        rect_player=player.get_rect()
        rect_player.center=(x,y)
    
        while(1):
            pygame.display.update()
            pygame.time.wait(30)
            screen.fill((0,20,0,0))
            screen.blit(bg,rect_bg)
            screen.blit(player,rect_player)
    
            for event in pygame.event.get():
                if event.type==QUIT:
                    pygame.quit()
                    sys.exit()
                if event.type==KEYDOWN:
                    if event.key==K_ESCAPE:
                        pygame.quit()
                        sys.exit()
    
    main()
    
[/code]

と入力すると

[code]

    error                                     Traceback (most recent call last)
    <ipython-input-17-cdbff3e182ab> in <module>
         34                     sys.exit()
         35 
    ---> 36 main()
         37 
    
    <ipython-input-17-cdbff3e182ab> in main()
         11     pygame.display.set_caption("Pygame Test")
         12 
    ---> 13     bg= pygame.image.load("C:\prog\python\pygame\\bg.png").convert_alpha
         14     rect_bg=bg.get_rect()
         15 
    
    error: Couldn't open C:\prog\python\pygame\bg.png
    
[/code]

とエラー文が出てきてしまい、bg.png が読み込めません。  
プログラムと同じファイルに画像ファイルがあること確認しました。どうすれば改善しますか？


CC BY-SA 4.0
2020-04-21T06:19:13.693
65811
2020-04-21T06:37:42.043
39563
question
python 画像 pygame
pygame画像が読み込めない


ファイルがあって、でもバックスラッシュ文字をエスケープシーケンスと解釈している都合上ファイルパスがくるって見える現象に悩まされるくらいなら下記のどれかに書き換えちゃうと良いっす。

  * ディレクトリ区切り記号をスラッシュ文字にする (Unix Style Path)  
`pygame.image.load("c:/prog/python/pygame/bg.png")`

  * RAW 文字列とする  
`pygame.image.load(R"c:\prog\python\pygame\bg.png")`

  * `os.path.join` でパスを作る  
`pygame.image.load(os.path.join("c:", "prog", "python", "pygame", "bg.png"))`

これでも読めないなら <https://www.pygame.org/docs/ref/image.html#pygame.image.load>
に解説がある通り `png` ファイルが未サポートなのでしょう。


CC BY-SA 4.0
2020-04-21T06:37:42.043
65812
2020-04-21T06:37:42.043
8589
65811
answer