1

そのため、進行状況などを記録するためだけに、次のスクリーンショット機能をゲームに実装しました。これは私のコードです:

pygame.image.save(screen, save_file)

かなり基本的です。最近、python 3.3 にアップグレードして以来、この関数を使用すると色が歪むという問題が発生しています。これが私が意味することです:

歪んだ色: 歪んだスクリーンショット

見た目はとてもいいですが、本来あるべき姿ではありません。これは実際の画像です:

実際の画像

これは既知の問題ですか、それとも私だけですか? それに対する修正はありますか、それとも現時点で機能が壊れているだけですか。私はpygame 1.9.2preを使用しています。これはプレリリースの単なるバグであると想定していますが、Python 3.3でpygameの他のバージョンを使用すると問題が発生しました。

4

2 に答える 2

3

一部のユーザーは、画像を png として保存するのが難しいと報告しています。

.png を指定しても .tga ファイルしか取得できません。とてもイライラします。

.PNG (大文字) を使用すると、無効なファイルが生成されます (少なくとも私の win32 では)。代わりに .png (小文字) を使用してください。

PNG が機能していないようです。Thunar でプレビューを取得できますが、他の場所では有効な PNG ではないと表示されます。

別の形式で保存すると役立つ場合があります。たとえば、BMP は単純な形式であるため、Pygame の実装にバグがある可能性はほとんどありません。

本当に PNG として保存したい場合は、赤のチャンネルを緑のチャンネルと交換することで歪みを逆にすることができます。これはかなり簡単です。たとえば、PIL を使用すると、次のようになります。

from PIL import Image
im = Image.open("screenshot.png")
width, height = im.size

pix = im.load()
for i in range(width):
    for j in range(height):
        r,g,b = pix[i,j]
        pix[i,j] = (g,r,b)

im.save("output.png")

または、BMP として保存し、事後に PNG に変換することもできます。

from PIL import Image
im = Image.open("screenshot.bmp")
im.save("screenshot.png")
于 2013-10-10T13:18:21.057 に答える