Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zoom_select_image_component-0.0.6-py3-none-any.whl (435.5 kB view details)

Uploaded Python 3

File details

Details for the file zoom_select_image_component-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for zoom_select_image_component-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 089c40e173c09a069f462df29d3f2254f4381b5fd4967a23fdee57212d360372
MD5 721e09e04d7740923196d524a5af24c0
BLAKE2b-256 d5aef4e087884d98c25fad8f9ab94e773bc2ab79e9fb665c686c2015676c6d54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page