2012-10-16 66 views
0

我在原始分辨率爲1280x720的顯示器上以全屏顯示一系列圖像。需要顯示的圖像是1280x720像素,以確保它們不需要轉換。該圖像是jpg高品質。PyGame在圖像加載時降低圖像質量

當我將圖像閃爍到表面時,它會以正確的大小顯示圖像,填滿屏幕。這正如我預料的那樣。

但是,顯示的圖像似乎被壓縮。壓縮看起來像大約80/100的jpeg壓縮。這似乎很好,但是這會導致顯示屏上清晰顯示的問題區域。下面的代碼是我現在擁有的。 Pygame的文件並沒有真正表現出任何質量設置,所以我希望我沒有移動到另一種方式來做到這一點,儘管這將是罰款......

pygame.display.set_mode((1280, 720)) 
# move mouse pointer off of the screen 
pygame.mouse.set_pos((1280, 720)) 
pygame.display.update() 

# Get the image from disk (with or without convert() shows same result) 
picture = pygame.image.load(image).convert() 

# smoothscale suggested on stack overflow, but shows no difference. 
picture = pygame.transform.smoothscale(picture, (1280, 720)) 

# Get the screen surface to display an image on and blit 
main_surface = pygame.display.get_surface() 
main_surface.blit(picture, (0, 0)) 
pygame.display.update() 
+0

正如你所說,圖像已經是1280x720。如果刪除刻度線會發生什麼情況? 問題是,你看到比原始圖像質量更低的pygame中的圖像,不是嗎? – pmoleri

+0

就像你可以在上面的評論中看到的那樣,建議使用smoothscale,但沒有區別或沒有區別。 convert()也一樣。 – Ruudt

+0

什麼'bpp'是在?每像素 – ninMonkey

回答

0

我不能從代碼告訴實際的圖像文件類型是什麼。當我在Pygame中得到無法解釋的輸出時,我會首先嚐試以下內容:

1)從命令行運行遊戲而不是shell(F5)。從Tkinter運行的shell有它自己的無限循環,並且會在你的程序中產生不希望的結果。

2)通過雙擊從目錄運行你的程序。

2)嘗試更改Photoshop中的圖像文件類型。我通常使用.png或jpeg。根據你使用哪一個嘗試另一個。

3)在Photoshop中使用「另存爲網頁」手動縮小文件大小,看看是否有幫助。

4)使用其他圖片來檢查它是否發生在所有圖片或只是這一張。

我建議上述的原因是我會使用非常相似的代碼,所以會尋找替代解決方案。我相信Pygame中的函數不應該怪罪,因爲他們已經被論壇上的用戶報告了。

+0

我不確定問題出在哪裏,但是我嘗試了其他圖像,它們有完全相同的問題(4)。 (3)(也許圖像太大,200KB - 600KB?) (1)和(2)我無法嘗試,因爲這實際上並不是一個遊戲。我被建議去看看我正在使用的pygame來解決查找另一種方法從命令行顯示全屏圖像的問題... – Ruudt

+0

如果刪除第一個更新命令,會發生什麼情況?你能鏈接到圖片,以便我可以下載並嘗試爲你自己? –

0

我已經重寫了代碼,以簡化:

#pygame code to render an image 
import pygame, os 
image = 'solution.jpg' #located in same folder as this file:resized in Photoshop 
pygame.init() #I assume you did this? 
SCREEN = pygame.display.set_mode((1280, 720)) 
pygame.mouse.set_pos((1280, 720)) 
picture = pygame.image.load(image) 
SCREEN.blit(picture,(0,0)) 
pygame.display.update()enter code here 

這工作得很好:

1)我只有一個pygame的更新,而不是兩個,我不使用get_surface()方法;我爲稱爲屏幕的表面創建了一個變量。

2)也許嘗試.png而不是.jpeg?

3)另一個想法:是在1280,720的圖片重新調整大小,看起來像你期望的Photoshop?

4)實驗的文件類型

JPG 
PNG 
GIF (non animated) 
BMP 
PCX 
TGA (uncompressed) 
TIF 
LBM (and PBM) 
PBM (and PGM, PPM) 
XPM 

上述所有被支持

我已經測試與照片上面的代碼,資源大小它們在Photoshop和多張圖片,並沒有問題。如果一切都失敗檢查你有最新的Pygame版本和正確的操作系統?

相關問題