import os import gradio as gr import requests import json import io from gradio.components import Image from PIL import Image as PILImage, ImageDraw, ImageFont # This import may be needed if you're processing images from PIL import Image def process_image(image): # Convert PIL image to bytes to send in POST request img_bytes = io.BytesIO() image.save(img_bytes, format="JPEG") img_bytes.seek(0) url = "http://127.0.0.1:9000/process_image" files = {'image': img_bytes} result = requests.post(url=url, files=files) if result.ok: json_result = result.json() if json_result.get("resultCode") == "Error": return [{"resultCode": "Error", "result": "Failed to process image"}] return [json_result] else: return [{"resultCode": "Error", "result": result.text}] with gr.Blocks() as demo: gr.Markdown( """
Opulentyn Logo

Credit Card OCR

We offer on-premises OCR and liveness check solutions available with a perpetual license.

## 🤝 Talk to us
Website      Email      Slack
""" ) with gr.Row(): with gr.Column(): image_input = gr.Image(type='pil') gr.Examples(['examples/1.jpg', 'examples/2.jpg', 'examples/3.jpg'], inputs=image_input) process_button = gr.Button("Process") with gr.Column(): json_output = gr.JSON() process_button.click(process_image, inputs=[image_input], outputs=[json_output]) gr.HTML('') demo.launch(server_name="0.0.0.0", server_port=7860)