我想请问一下,用requests.get(url).content获取到的图片保存到本地会跟直接在地址上下载有什么区别嘛?
我想把下载的图片整合到一个pdf里,我用过了网上的很多方法,img2pdf,PIF的方法,我发现就我用requests下载下来的图片不能够识别,要么报错(报错说我要进行的图片是无效的,但是我是能够打开的),要么pdf里显示是空白,而我用其他地址直接下载下来的图片就能够整和成pdf,这是什么原因啊?
用requests获取到的图片的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- GISer Liu 2023-02-15 11:44关注
以下答案引用自GPT-3大模型,请合理使用:
,谢谢! 我想可能是因为需要先进行图片格式的转换才能够正确地被识别。如果是网站上直接下载的图片,通常只要用open()和Image.open()就可以实现,但是用requests.get()获取文件的时候,因为从网站获取到的是二进制数据,前面一般会附带有MIME type头, 是一种用来识别文件类型的格式,这样你可以根据这个MIME type头有效地将二进制数据转换成真正的图片格式,然后再进行处理,方法可以这样: # 先获取二进制数据和MIME type头 response = requests.get(url) content_type = response.headers['Content-Type'] binary_data = response.content # 根据MIME type头的类型来进行图片格式转换 from PIL import Image from io import BytesIO if 'image/png' in content_type: img = Image.open(BytesIO(binary_data)).convert('RGB') elif 'image/jpeg' in content_type: img = Image.open(BytesIO(binary_data)).convert('RGB') elif 'image/jpg' in content_type: img = Image.open(BytesIO(binary_data)).convert('RGB') # 保存图片到本地 img.save('path_to_local.jpg')
如果我的回答解决了您的问题,请采纳我的回答
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
- ¥15 matlab自定义损失函数
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图