import streamlit as st from PIL import Image, ImageOps import numpy as np import io import time import math # Hugging Face Transformers specific imports from transformers import AutoModelForSequenceClassification, AutoTokenizer # Load pre-trained model and tokenizer model_name = "distilbert-base-uncased-finetuned-sst-2-english" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) def rotate_image(image, angle): """ Rotate the given PIL image by the given angle """ # Add padding to prevent cropping image = ImageOps.expand(image, border=int(np.ceil(max(image.size) * 1.5)), fill="white") rotated_image = image.rotate(angle, resample=Image.BICUBIC, expand=True) return rotated_image def main(): st.title("Hugging Face Streamlit Example: Rotating Image") # Upload an image st.sidebar.title("Upload Image") uploaded_file = st.sidebar.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) # Rotation speed adjustment rotation_speed = st.sidebar.slider("Rotation Speed", min_value=0, max_value=360, value=10, step=1) if uploaded_file is not None: # Display the image image = Image.open(uploaded_file) st.image(image, caption="Uploaded Image", use_column_width=True) # Rotation angle initialization rotation_angle = 0 # Display an empty placeholder rotating_image_placeholder = st.empty() while True: # Calculate the new rotation angle rotation_angle += rotation_speed rotation_angle %= 360 # Keep angle within 0-359 range # Rotate the image rotated_image = rotate_image(image, rotation_angle) # Display the rotated image rotating_image_placeholder.image(rotated_image, caption="Rotated Image", use_column_width=True) # Pause briefly to control the rotation speed time.sleep(0.1) if __name__ == "__main__": main()