为什么用shutil和requests下载的有些图片有灰条?

Why do some of the images downloaded with shutil and requests have grey bars?

我是 运行 一个定期从网站下载图片并将其上传到 Twitter 的机器人。然而,有时图片底部会出现灰色条,导致上传的图片看起来像 this or this.

这是将图片下载为 'localImage.jpg' 并覆盖之前图片的代码:

image_stream = requests.get('linkToImage', stream=True)
local_image = open('localImage.jpg', 'wb')
image_stream.decode_content = True
shutil.copyfileobj(image_stream.raw, local_image)

整个存储库是 here

我的问题是,是什么导致上传的图片底部出现灰色框?

虽然我无法弄清楚为什么图像上会出现灰色框,但我确实在 the answer to this question 中找到了解决方案。

image_stream = requests.get(extracted[2], stream=True)
with  open('localImage.jpg', 'wb') as image:
    for chunk in image_stream:
        image.write(chunk)

我没有使用 shutil 的 copyfileobj 方法,而是使用 .write 方法将流块写入本地图像。这似乎解决了灰色框的问题。