Crate miniview

source ·
Expand description

MiniView is a small program which allows to show a single image in a graphical window. It supports both windowed mode and fullscreen mode and can be useful for debugging or testing programs dealing with images.

MiniView can be used both as a binary executable (usually miniview or miniview.exe), or as a library.

If you want to use a miniview binary, provide the --help flag for information on its usage and options. In addition, you could take a look at the readme.

For library usage you may want to start by looking at the MiniView.show method and ConfigBuilder struct, to respectively create a MiniView window controlling instance and conveniently create a configuration which is required for MiniView.show.

Feel free to post questions, issues, suggestions and feedback at the issue tracker.

Example usage:

use miniview::{ConfigBuilder, MiniView};
use std::time::Duration;

let config = ConfigBuilder::from_path(concat!(env!("CARGO_MANIFEST_DIR"), "/resources/plant.jpg"))
        .set_fullscreen(true)
        .build();

let controls = MiniView::show(config).expect("unable to create miniview");

// do some important other work!
std::thread::sleep(Duration::from_millis(1000));

let closed = controls.close();
assert!(closed.is_ok());

Backends

MiniView supports two backends: piston-window and pixels. You can switch between backends on compile time. This requires setting Cargo features. The piston-window backend can be enabled using the backend_piston_window feature, and the pixels backend can be enabled using the backend_pixels feature.

The default backend is pixels. This backend will be used if no-default-features is not specified.

The next sections provide examples, on how to enable each backend. Only one backend should be enabled at a time.

backend: piston-window

Platform support

Supported platforms:

  • any platform supported by piston-window with Glutin, including:
  • Linux
  • MacOS
  • Windows

Configuration examples

When building MiniView, the piston-window backend can be used by compiling with:

cargo run --no-default-features --features backend_piston_window

When using MiniView as a library, you can use:

[dependencies.miniview]
version = "*" # select the latest version here
default-features = false
features = ["backend_piston_window"]

or

[dependencies]
miniview = { version = "*", default-features = false, features = ["backend_piston_window"] }

backend: pixels

Platform support

Supported platforms:

  • Linux
  • Dragonfly
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Windows

Note: MacOS is not yet supported for this backend.

Configuration examples

When building MiniView, the pixels backend can be used by compiling with:

cargo run --no-default-features --features backend_pixels

When using MiniView as a library, you can use:

[dependencies.miniview]
version = "*" # select the latest version here
default-features = false
features = ["backend_pixels"]

or

[dependencies]
miniview = { version = "*", default-features = false, features = ["backend_pixels"] }

Re-exports

Modules

  • In order to display the miniview window, a configuration which defines how the view should be presented is required. This configuration may be constructed manually, or by using the ConfigBuilder which leverages the builder pattern.
  • Errors which signal faulty behaviour.
  • Convenience functions to load a bytestream representing a path to an image or the image itself from the stdin pipe.

Structs

  • Provides the controls to show and consecutively close a miniview window

Enums

  • The source of an image which will be shown by the view

Type Definitions

  • A convenience type alias which represents a regular Result where the error type is represented by the MiniViewError, which is the top-level error type for this crate.