如何从电报b发送图像

2024-04-26 10:39:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我的机器人现在已经开始工作了,但问题是它只能发送文本。我在Bot API中看到了一些发送照片、视频的函数。。。但我不能让它工作。有人做到了?我正在使用来自yukuku/telebot的python源代码

 elif text == '/image':
            img = Image.new('RGB', (512, 512))
            base = random.randint(0, 16777216)
            pixels = [base+i*j for i in range(512) for j in range(512)]  # generate sample image
            img.putdata(pixels)
            output = StringIO.StringIO()
            img.save(output, 'JPEG')
            reply(img=output.getvalue())

当我更改代码时,什么也没发生。

img = Image.open('image.png')
img.show()

请帮帮我。我需要正确的密码。对不起,我英语不好。


Tags: inimage文本apiimgforoutputbase
3条回答

解决办法是

elif 'Hi' in text:
reply(img=urllib2.urlopen('img url').read())

或者

if text == 'help':
            reply(img=urllib2.urlopen('img url').read())

我有两个功能,一个是发送本地图像,另一个是发送远程图像。

def sendImage():
    url = "https://api.telegram.org/bot<Token>/sendPhoto";
    files = {'photo': open('/path/to/img.jpg', 'rb')}
    data = {'chat_id' : "YOUR_CHAT_ID"}
    r= requests.post(url, files=files, data=data)
    print(r.status_code, r.reason, r.content)

def sendImageRemoteFile(img_url):
    url = "https://api.telegram.org/bot<Token>/sendPhoto";
    remote_image = requests.get(img_url)
    photo = io.BytesIO(remote_image.content)
    photo.name = 'img.png'
    files = {'photo': photo}
    data = {'chat_id' : "YOUR_CHAT_ID"}
    r= requests.post(url, files=files, data=data)
    print(r.status_code, r.reason, r.content)

在发送照片之前,必须output.seek(0)将光标放回文件的开头,否则将读取为零

相关问题 更多 >