Używam PIL do przekształcania części ekranu w sposób perspektywiczny. Pierwotne dane obrazu to pygame Powierzchnia, którą należy przekonwertować na obraz PIL.Jak przekonwertować powierzchnię pygame do obrazu PIL?
Dlatego znalazłem funkcję śledzącą pygame, która istnieje w tym celu.
Jednak wynik wygląda dość dziwnie (patrz załączony zrzut ekranu). Co jest nie tak z tym kodem:
rImage = pygame.Surface((1024,768))
#draw something to the Surface
sprite = pygame.sprite.RenderPlain((playboard,))
sprite.draw(rImage)
pil_string_image = pygame.image.tostring(rImage, "RGBA",False)
pil_image = Image.fromstring("RGBA",(660,660),pil_string_image)
Co robię źle?
Jak to wygląda, jeśli umieścisz (1024,768) zamiast (660,660) lub na odwrót? –
To działa, ale dlaczego? – Hedge
[pygame docs] (http://www.pygame.org/docs/ref/image.html#pygame.image.fromstring) o pygame.image.fromstring (ciąg, rozmiar, format, odwrócone = fałsz) powiedz "The rozmiar i format obrazu musi obliczyć dokładnie taki sam rozmiar, jak w przypadku podanego bufora ciągów. W przeciwnym razie zostanie zgłoszony wyjątek ", ale poza tym nie wiem, jak to działa. –