You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:40:55