Streamlit component that allows you to zoom and select parts of an image for further analysis.
Project description
zoom-select-image-component
Streamlit component that allows you to select parts of an image by panning and zooming.
Installation instructions
pip install zoom-select-image-component
Usage instructions
import streamlit as st
from PIL import Image
from zoom_select_image_component import zoom_select_image_component
image = Image.open('image.png')
rectangles = zoom_select_image_component(image)
The component takes the following arguments:
image: PIL.Image
The image to display in the component.
rectangle_width: number
The width of the zoom rectangle in image pixels.
rectangle_height: number
The height of the zoom rectangle in image pixels.
image_key: str
A key that identifies the image. Can be set to anything, but should be unique to the image since the image
will only update if image_key also changes.
It returns an array of selected rectangles. Each rectangle is a dictionary with the following keys:
left: int
number of horizontal pixels from top left corner of image to top left corner of rectangle
top: int
number of vertical pixels from top left corner of image to top left corner of rectangle
width: int
width of rectangle in pixels
height: int
height of rectangle in pixels
is_enabled: bool
whether the checkbox in the rectangle is checked or not
cropped_image: PIL.Image
the part of the image covered by this rectangle
Look at the files zoom_select_image_component/example.py and zoom_select_image_component/example_sa.py for complete
usage examples.
The latter file runs the segment anything model on the selected parts of the image.
Development instructions
Set _RELEASE = False in __init__.py.
Enter zoom_select_image_component/frontend and run npm update followed by npm run start.
In another terminal window, create a virtual environment by running python -m venv venv.
Run . venv/bin/activate and run pip install -e . to install this component as a local package.
Run streamlit run zoom_select_image_component/example.py.
Deployment instructions
Set _RELEASE = True in __init__.py.
Run npm run build in zoom_select_image_component/frontend.
Create a Python wheel by running pip wheel --no-deps -w dist . in the root directory.
Upload to pypi using python -m twine upload --repository pypi dist/*.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zoom_select_image_component-0.0.6-py3-none-any.whl.
File metadata
- Download URL: zoom_select_image_component-0.0.6-py3-none-any.whl
- Upload date:
- Size: 435.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
089c40e173c09a069f462df29d3f2254f4381b5fd4967a23fdee57212d360372
|
|
| MD5 |
721e09e04d7740923196d524a5af24c0
|
|
| BLAKE2b-256 |
d5aef4e087884d98c25fad8f9ab94e773bc2ab79e9fb665c686c2015676c6d54
|