如何使用pyTelegramBotAPI下载高质量图片?现有代码画质不佳
解决pyTelegramBotAPI下载低质量图片的问题
Telegram发送图片时会生成多档分辨率的版本,message.photo是按画质从低到高排列的数组,你当前取的message.photo[0]是最低清的版本,这就是画质差的核心原因。
只需修改代码,取数组最后一个元素(索引-1)即可获取最高画质的图片:
@bot.message_handler(content_types=['document', 'photo', 'audio', 'video', 'voice']) def addfile(message): if message.photo: # 选取最高画质的图片版本 highest_quality_photo = message.photo[-1] photo = bot.get_file(highest_quality_photo.file_id) photo_path = photo.file_path photo_id = photo.file_id photo_type = photo.file_path.split('.')[-1] file = bot.download_file(photo_path) with open(f"{photo_id}.{photo_type}", "wb") as code: code.write(file)
如果需要查看各版本的分辨率差异,可以添加这段代码验证:
for idx, photo_version in enumerate(message.photo): print(f"版本{idx+1}: 宽{photo_version.width}px 高{photo_version.height}px")
内容的提问来源于stack exchange,提问作者user14973800
相关产品推荐
相关产品推荐

