我使用python-telegram-bot模块创建了一个机器人。
Bot使用pybarcode模块生成条形码。
在机器人对话期间,我想向用户发送创建的图像:
from telegram import (ReplyKeyboardMarkup, ReplyKeyboardRemove, InlineKeyboardButton, KeyboardButton)
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,
ConversationHandler)
from StringIO import StringIO
import barcode
#..............................
#..............................
def send_barcode(bot, update, user_data):
fp = StringIO()
generate('EAN13', u'5901234123457', writer=ImageWriter(), output=fp)
#... how can I send the RAW image in fp object?
#..............................................
#..............................
#..............................
提前致谢
答案 0 :(得分:1)
使用bot.send_photo。如果您在磁盘上有文件,请使用如下代码:bot.send_photo(chat_id=chat_id, photo=open('path/image.png', 'rb'))
。如果你想从内存中发布文件,可以从github wiki中找到它的例子:
from io import BytesIO
bio = BytesIO()
bio.name = 'image.jpeg'
image.save(bio, 'JPEG')
bio.seek(0)
bot.send_photo(chat_id, photo=bio)