在一条消息RabbitMQ(python3.X)中发送带有名称的图像

2024-10-02 04:20:31 发布

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

我目前正在尝试建立一个系统,将图像发送到多个远程服务器,以便在图片上执行一些Open-CV和tesseract操作。你知道吗

在一台服务器上,这是可以的,因为我在发送之前将图像重命名到文件夹中(发送的第一个图像自动命名为image\u 0)

然后在接收时再次重命名它们,以相同的顺序使名称对应于相同的图像(第一次发送的图像0和第一次接收的图像0在本地和远程都被命名为图像0),以便在接收结果时更容易读取名称。你知道吗

然后在培训结束时,我在本地收到一个.txt文件,其中包含图像(MRZ区域)的结果,如“Image\u 0 results XXXXXXXX<;<;

我的问题--->

我现在想使用多个远程服务器,并使用带有rabbitMQ的WORKQUEUE来执行基本的工作流编排,并减少图像示例的处理时间。你知道吗

我如何发送一个图像的名称,使其在base64中,在我的.txt结果文件的末尾有相应的名称,因为我的当前方法不能在多个远程服务器上工作?你知道吗

谢谢你的帮助!你知道吗

以下是我当前发送图像的方式:

for file in natsorted(os.listdir()):
    end_name=file[-4]+ file[-3]+ file[-2]+ file[-1]
    if (end_name != ".txt"):

        try:
            with open(file, "rb") as image:
                message = base64.b64encode(image.read())

            channel.basic_publish(exchange='topic_logs', 
            routing_key=routing_key, body=message)
            print(f"{file} || sended on topic %r \n" % (routing_key))

        except IndexError:
            print("No image given ! ")
            sys.exit(1)

        os.rename(file,"Image_"+str(ComptNames)+".png")
        ComptNames=ComptNames+1

Tags: 文件key图像imagelt服务器txt名称
2条回答

使用JSON作为消息内容类型。这个JSON对象的一个元素是文件名,另一个是Base64编码的图像。你知道吗

{
  "filename": "foo.jpg",
  "bytes": "..."
}

使用者必须解析这个JSON消息体。你知道吗

您可以使用AMQP消息头来发送包含消息数据的文件名。使用pika.spec.BasicProperties类发送头,如this example。当然,接收端也会提供邮件头。你知道吗


注意:RabbitMQ团队监视rabbitmq-usersmailing list,有时只回答有关StackOverflow的问题。

相关问题 更多 >

    热门问题