Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imshow-0.2.4.tar.gz (21.8 MB view details)

Uploaded Source

Built Distribution

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

imshow-0.2.4-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for imshow-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ba1f89c9544c4d02fd7da424f2df558adc1a3f13476fab271095f611548978ba
MD5 cbd10cd2b30bd27c73aa72d917d167e2
BLAKE2b-256 53a3abd387c00f1fbb8cfba6d9aca73394535e54d6fcfddd75b23c5b7e169d56

See more details on using hashes here.

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

Hashes for imshow-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 25c1ce8891ca040816f7a3a54c0945788f61416fca90d1e0ba2604e496d25c43
MD5 f0e3ebbb8a389a1f1804620ab3104756
BLAKE2b-256 eec1bf8a684eec8652fe76cfe0027d396fb62743e32fd3719257271a11cca42e

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