sách gpt4 ăn đã đi

python - 如何将 pygame 表面转换为 PIL 图像?

In lại 作者:太空狗 更新时间:2023-10-30 01:09:21 28 4
mua khóa gpt4 giày nike

我正在使用 PIL 对屏幕的一部分进行透视变换。原始图像数据是需要转换为 PIL 图像的 pygame Surface。

因此我找到了 pygame 的 tostring 函数,它就是为此目的而存在的。

然而结果看起来很奇怪(见附件截图)。这段代码出了什么问题:

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)

我做错了什么?

pygame surface to pil image conversion

câu trả lời hay nhất

正如我在评论中指出的那样,pygame documentationpygame.image.fromstring(string, size, format, flipped=False) 表示“大小和格式图像必须计算与传递的字符串缓冲区完全相同的大小。否则将引发异常”。因此,使用 (1024,768) 代替 (660,660),反之亦然——通常,两个调用的维度相同——更有可能起作用。 (我说“更有可能工作”而不是“会工作”是因为我没有测试任何案例。)

怀疑是这样的问题原因:部分图像奇怪的样子像一个设置了光栅率无法同步的显示屏;即,图像的线条开始显示在左边距以外的点;在这种情况下,因为图像行长度比显示行长度长。我假设雪花是 Sprite ,与扭曲的图像分开生成。

关于python - 如何将 pygame 表面转换为 PIL 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176689/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress