2016-02-14 4 views
1

Как преобразовать небольшую часть поверхности в объект изображения? Я вообще не эксперт по python, поэтому, когда docs говорят о классе, называемом numpty? и другая функция, называемая tostring и fromstring, и это было неясно. Я предположил, что from_rect() может помочь, но и не очевиден для меня.Нужно переместить небольшую область экрана

Интересно, что это лучший способ сделать следующее: Я загружаю фотографию, рисуя ее, а затем сохраняя ее снова. Но хотите конвертировать небольшую область 32x32 из середины в спрайт, а затем blit, что спрайт обратно, но несколько пикселей ниже (нет прозрачности или что-то фантазии). Как преобразовать небольшую часть поверхности в объект изображения?

size = width, height = 1080, 720 
screen = pygame.display.set_mode(size) 
screen.fill(black) 
keyboard = pygame.image.load("keyboard.jpg") 
keyboard = pygame.transform.scale(keyboard, size) 
screen.blit(keyboard, (0,0)) 
image = screen.getmeaspriteplease(500,300,32,32) # how do I do this? 
screen.blit(image, (500,400)) 

ответ

0

Вы ищете pygame.Surface.subsurface:

keyboard = pygame.transform.scale(keyboard, size) 
my_little_copy = keyboard.subsurface(Rect(500, 300, 32, 32)).copy() 
screen.blit(keyboard, (0, 0)) 
screen.blit(my_little_copy, (500, 350)) 
+0

Благодаря @sloth. Не уверен, кто дал ответ -1, но попробуем это через минуту и ​​ответим, потому что похоже, что он может удовлетворить мои минимальные потребности. В этот момент я отправлю подтверждение. –

+0

Спасибо! Я изменил последний бит на: pygame.draw.rect (экран, черный, Rect (500, 300, 32, 32), 0) # blank out screen.set_clip (Rect (500, 300, 32, 32)) # сделать обрезающий прямоугольник screen.blit (my_little_copy, (500, 350 + 3)) # переместить сокращенный снимок 3 px , который обрезает нижнюю часть отрезанного изображения, как я хотел. –

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