|
import streamlit as st |
|
from PIL import Image, ImageOps |
|
import numpy as np |
|
import io |
|
import time |
|
import math |
|
|
|
|
|
from transformers import AutoModelForSequenceClassification, AutoTokenizer |
|
|
|
|
|
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 |
|
""" |
|
|
|
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") |
|
|
|
|
|
st.sidebar.title("Upload Image") |
|
uploaded_file = st.sidebar.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) |
|
|
|
|
|
rotation_speed = st.sidebar.slider("Rotation Speed", min_value=0, max_value=360, value=10, step=1) |
|
|
|
if uploaded_file is not None: |
|
|
|
image = Image.open(uploaded_file) |
|
st.image(image, caption="Uploaded Image", use_column_width=True) |
|
|
|
|
|
rotation_angle = 0 |
|
|
|
|
|
rotating_image_placeholder = st.empty() |
|
|
|
while True: |
|
|
|
rotation_angle += rotation_speed |
|
rotation_angle %= 360 |
|
|
|
|
|
rotated_image = rotate_image(image, rotation_angle) |
|
|
|
|
|
rotating_image_placeholder.image(rotated_image, caption="Rotated Image", use_column_width=True) |
|
|
|
|
|
time.sleep(0.1) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|