gpt4 book ai didi

python - PIL ImageGrab 返回 24 位图像而不是 32 位

转载 作者:行者123 更新时间:2023-12-01 01:15:13 26 4
gpt4 key购买 nike

我有以下功能:

def take_screenshot(x1, y1, x2, y2):
img = ImageGrab.grab(bbox=(x1, y1, x2, y2))
return img

当我使用以下方式保存图像时:

img = take_screenshot(10, 10, 200, 200)
img.save("test.png")

我认为 Pill 使用 32 位作为所有内容的默认值。我不明白它如何保存为 24 位而不是 32 位。

最佳答案

来自documentationPIL.ImageGrab.grab(bbox=None) 拍摄屏幕快照。边界框内的像素在 Windows 上以“RGB”图像的形式返回,在 macOS 上以“RGBA”图像的形式返回。

您还可以查看源代码here

在 Windows 上,严格来说 uses RGB(24 位)大小,数据=抓取器()

im = Image.frombytes(
"RGB", size, data,
# RGB, 32-bit line padding, origin lower left corner
"raw", "BGR", (size[0]*3 + 3) & -4, -1
)

如果需要 32 位图像,您可以使用以下方法将图像转换为 RGBA(32 位)

img = take_screenshot(10, 10, 200, 200)
img = img.convert("RGBA")
img.save("test.png")

关于python - PIL ImageGrab 返回 24 位图像而不是 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com