2016-05-21 6 views

答えて

0

このリンクで報告されているようにPNG輸出、 を行うにはpygameのにバグがありますようです:あなたは絶対にPNGを必要とする場合 http://www.mzan.com/article/19296253-pygame-image-save-colors-distorted.shtml

そう、あなたはそれがPILだ場合でも、(この方法でPILを使用することができますそれはpygameのバグだとして

from PIL import 
Image im = Image.open("screenshot.bmp") 
im.save("screenshot.png") 

あなたは、サードパーティのライブラリを使用して避けることができない。。■

))

まず、BPMへの輸出は、その後、行う;、あなたはPNGファイルを持っています

+2

がありますピクセル配列にアクセスし、スクリーンショットを撮る前に緑と赤を入れ替えて正常になるようにする方法でしょうか?私は小さい60x30の領域でそれを必要とします。私は箱の外で考えるのが好きです。 :3 –

+0

はい、もちろんです。 'rect = pygame.Rect(25,25,100,50) sub = screen.subsurface(rect)' 次に、サーフェスの一部のスクリーンショットを作成するには、 ":) 表面を操作するには、次をご覧ください: http://stackoverflow.com/questions/5891808/how-to-invert-colors-of-an-image-in-pygame –

+0

私は、それにアクセスすることについて多くを知っている。私はそれについて研究します。もし私がそれを理解できなければ、私は戻ってきて質問します。 :P –

1

あなたはこのためにsurfarrayクラスを使用することができ、3次元は青/緑、赤#あるので、このようなものが動作するはずです:

img = pygame.surfarray.array3d(*your image here*) 
img_copy = pygame.surfarray.array3d(*your image name here*) 

for y in range(0, *image height*): 
    for x in range(0, *img width*): 
     img_copy[x][y][0] = img[x][y][1] 
     img_copy[x][y][1] = img[x][y][0] 

、その後、あなたが行うことができます:

surf = pygame.surfarray.make_surface(img_copy) 
関連する問題