Imshow
Flexible and Customizable Image Display
Imshow is a Python app to display images.
Imshow gives you:
- Flexiblity - CLI & Python interface;
- Customizability - visualize any data via the plugin system;
- Fast & clean image display.
Installation
python3 -m pip install imshow
Usage
Command-Line
imshow examples/*.jpg
imshow examples --recursive # --recursive (-r)
imshow examples -r --plugin tile --col 3 # --plugin (-p)
Python
import glob
import imgviz
import imshow
images = (imgviz.io.imread(filepath) for filepath in glob.glob("examples/*.jpg"))
imshow.imshow(images)
Builtin plugins
-p base (default)
imshow examples/*.jpg
imshow examples --recursive # auto-search image files
-p tile
imshow examples/*.jpg -p tile --col 3 --row 3
imshow examples/*.jpg -p tile --col 3
-p mark
imshow examples/*[0-9].jpg -p mark --mark-file examples/mark.txt
How to create custom plugin
You can pass a Python file that contains class Plugin(base.Plugin) to --plugin, -p to customize the behaviour of Imshow. Below example shows a countdown from 10 to 0 displayed as images.
See plugins/base.py for the most basic example of scanning image files and displaying them.
For more examples, check plugins folder.
imshow examples/*.jpg --plugin examples/countdown_plugin.py --number 10
import numpy as np
import imgviz
from imshow.plugins import base
class Plugin(base.Plugin):
@staticmethod
def add_arguments(parser):
# define additional command line options
parser.add_argument(
"--number", type=int, default=10, help="number to count down from"
)
number: int
def __init__(self, args):
self.number = args.number
def get_items(self):
# convert command line options into items to visualize.
# each item represent the chunk that is visualized on a single window.
yield from range(self.number, -1, -1)
def get_image(self, item):
# convert item into numpy array
image = np.full((240, 320, 3), 220, dtype=np.uint8)
font_size = image.shape[0] // 2
height, width = imgviz.draw.text_size(text=f"{item}", size=font_size)
image = imgviz.draw.text(
src=image,
text=f"{item}",
yx=(image.shape[0] // 2 - height // 2, image.shape[1] // 2 - width // 2),
color=(0, 0, 0),
size=font_size,
)
return image
License
MIT
Metadata
Release files for imshow 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| imshow-0.2.4.tar.gz | 21.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| imshow-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 MB
Release files / imshow-0.2.4.tar.gz
| Download URL | imshow-0.2.4.tar.gz |
|---|---|
| Size | 21.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba1f89c9544c4d02fd7da424f2df558adc1a3f13476fab271095f611548978ba
|
|
BLAKE2b-256 checksum How to use checksums |
53a3abd387c00f1fbb8cfba6d9aca73394535e54d6fcfddd75b23c5b7e169d56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.2
|
Release files / imshow-0.2.4-py3-none-any.whl
| Download URL | imshow-0.2.4-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
25c1ce8891ca040816f7a3a54c0945788f61416fca90d1e0ba2604e496d25c43
|
|
BLAKE2b-256 checksum How to use checksums |
eec1bf8a684eec8652fe76cfe0027d396fb62743e32fd3719257271a11cca42e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.2
|