Flexible and Customizable Image Display
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 imshow-0.2.4.tar.gz.
File metadata
- Download URL: imshow-0.2.4.tar.gz
- Upload date:
- Size: 21.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba1f89c9544c4d02fd7da424f2df558adc1a3f13476fab271095f611548978ba
|
|
| MD5 |
cbd10cd2b30bd27c73aa72d917d167e2
|
|
| BLAKE2b-256 |
53a3abd387c00f1fbb8cfba6d9aca73394535e54d6fcfddd75b23c5b7e169d56
|
File details
Details for the file imshow-0.2.4-py3-none-any.whl.
File metadata
- Download URL: imshow-0.2.4-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25c1ce8891ca040816f7a3a54c0945788f61416fca90d1e0ba2604e496d25c43
|
|
| MD5 |
f0e3ebbb8a389a1f1804620ab3104756
|
|
| BLAKE2b-256 |
eec1bf8a684eec8652fe76cfe0027d396fb62743e32fd3719257271a11cca42e
|