2016-05-30 7 views
0

Pygames画像読み込み機能で画像を読み込もうとすると、読み込まれた画像の上部に黒いバーが表示されます。タイルをスライスすると、このバーがコンテンツを1ピクセル分オフセットすることが明らかになりました。PygameはRGB値がオフセット値1pxで、アルファ値ではない画像を読み込みます

さまざまなファイル形式(gif、png、アルファ、非アルファなど)を使用すると、オフセットと同様の効果があります。ただし、convert_alphaを使用すると、pngはアルファを除くすべてのオフセットになります。

Example of the offest, and random colours when split into tilesおよびthe tileset image being used

あっても、画像全体の単純なブリットは、同じ問題が存在しています

import pygame 
import pygame.locals 

pygame.init() 
screen = pygame.display.set_mode((128, 128)) 
screen.fill((255,255,255)) 

screen.blit(pygame.image.load("src/tiles.gif"), (16,16)) 
pygame.display.flip() 

Iもconvert()convert_alpha()、同様の効果の両方を使用して試みました。

ありがとうございました。私はPython 3.5でOS X 10.11でPygame 1.9.1を実行しています。

編集:私は網膜と非網膜ディスプレイの両方でそれをテストしました、そして、両方で同じです。アルファを使用すると、アルファがそのまま残り、rgb値だけが1ピクセル下にシフトします。

答えて

0

は、画像のアルファを設定するようにしてください:

pygame.image.load("src/tiles.gif"), (16,16)).convert_alpha() 
+0

私はいつも(convert_alphaを使用)が、何実際にそれを行うのは、あなたは少し説明することができますか? – ihsancemil

+1

@gsancemil convert()は、pygame.Surfaceを最終的な表示に使用するものと同じピクセル形式に変換するために使用されます。convert_alpha()は、親ピクセルを持つ画像用です。 –

+0

残念ながら、 convert()。両方とも同じ効果があります。 –

関連する問題