2015-11-07 2 views
1

Попытка построить мой первый проект pygame и захотеть импортировать следующую карту. Б изображения:Изображения, искаженные с помощью pygame

enter image description here

Мой код:

import pygame 
pygame.init() 
size = (1300, 700) 
screen = pygame.display.set_mode(size) 
pygame.display.set_caption("My Game") 
done = False 
clock = pygame.time.Clock() 
map = pygame.image.load('map.jpg') 
map = map.convert() 
map = pygame.transform.scale(map, (466,700)) 
while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 
    screen.fill((255,255,255)) 
    screen.blit(map, (430, 0)) 
    pygame.display.flip() 
    clock.tick(60) 
pygame.quit() 

и выглядит результат:

enter image description here

Я также попытался преобразования JPG в BMP, но все-таки те же результаты. Я не могу понять, что искажает изображение, пытаясь с другими изображениями, кажется, что полученные изображения немного шире оригинала. Я подозреваю, что pygame просто читает ширину неправильно, а затем помещает пиксели в массив с такой шириной.

Любые советы по их исправлению были бы очень признательны.

+0

На самом деле вы не задавали вопрос. Вы должны добавить некоторые объяснения. – Tacet

+1

Тот же код работает отлично с моей машиной Windows, кстати. – cgon

+0

Я использую MacBook Air, работающий os x 10.11. –

ответ

2

В SDL_image (на котором основан Pygame) есть ошибка, которая искажает изображения в OS X 10.11.

https://bugzilla.libsdl.org/show_bug.cgi?id=3154

В настоящее время единственным известным решением является понижаем до SDL_image 1.2.10, но я не смог подтвердить.

Смежные вопросы