Tôi đang sử dụng PIL để chuyển đổi một phần màn hình theo chiều dọc. Dữ liệu hình ảnh gốc là một bề mặt đồ họa cần được chuyển đổi thành hình ảnh PIL.Làm thế nào để chuyển đổi một bề mặt pygame thành hình ảnh PIL?
Vì vậy, tôi đã tìm thấy hàm chuỗi dây của pygame tồn tại cho mục đích đó.
Tuy nhiên kết quả trông khá lạ (xem ảnh chụp màn hình được đính kèm). Điều gì sẽ xảy ra với mã này:
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)
Tôi đang làm gì sai?
Có vẻ như thế nào nếu bạn đặt (1024,768) thay cho (660,660) hoặc ngược lại? –
Nó hoạt động, nhưng tại sao? – Hedge
[tài liệu pygame] (http://www.pygame.org/docs/ref/image.html#pygame.image.fromstring) về pygame.image.fromstring (string, size, format, flipped = False) nói “The kích thước và định dạng hình ảnh phải tính toán kích thước chính xác giống như bộ đệm chuỗi đã qua. Nếu không thì một ngoại lệ sẽ được nâng lên ”nhưng ngoài ra tôi không biết nó hoạt động như thế nào. –