Crate miniview[][src]

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

pub use crate::config::ConfigBuilder;
pub use crate::errors::MiniViewError;

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.