Spaces:
Sleeping
Sleeping
import gradio as gr | |
import cv2 | |
from PIL import Image | |
from pillow_heif import register_heif_opener | |
import numpy as np | |
import imghdr | |
def process_image(input_image, width = None, height = None): | |
# Process the image here | |
# For example, you can apply some image filters or transformations | |
if input_image: | |
# Convert the PIL image to OpenCV format | |
image = Image.open(input_image) | |
image = np.array(image) | |
if width is None: | |
width = image.shape[1] | |
if height is None: | |
height = image.shape[0] | |
# Apply some image processing | |
print(f"Width: {width}, Height: {height}") | |
image = cv2.resize(image, (height, width)) | |
print(f"Image shape: {image.shape}") | |
return image | |
else: | |
return None | |
def display_image_info(input_image): | |
if not input_image: | |
return "No image uploaded" | |
try: | |
format = imghdr.what(input_image) | |
return f"The format of the image is '{format}'" | |
except: | |
return f"The image format is unknown. However the file extension is '{input_image.split('.')[-1]}'" | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
with gr.Column(): | |
input_image = gr.Image("input_image", type="filepath") | |
with gr.Column(): | |
output_image = gr.Image("output_image", type="filepath") | |
# ========= For width and height ========== | |
with gr.Row(): | |
width = gr.Slider(1, 1000, value=256, label="Width") | |
height = gr.Slider(1, 1000, value=192, label="Height") | |
with gr.Row(): | |
output_textbox = gr.Textbox("output_textbox", type="text", label="Output Textbox") | |
input_image.change(process_image, [input_image, width, height], output_image) | |
input_image.change(display_image_info, input_image, output_textbox) | |
width.change(process_image, [input_image, width, height], output_image) | |
height.change(process_image, [input_image, width, height], output_image) | |
demo.launch() | |