kornia-io 0.2.0

Image and Video IO library in Rust for computer vision
#![deny(missing_docs)]
#![doc = env!("CARGO_PKG_DESCRIPTION")]
//!
//! # Scope
//!
//! The generic `read_image` / `decode_image` / `write_image` entry points
//! exposed by the `kornia-py` Python bindings are Python-only convenience
//! helpers. This crate exposes strictly typed per-format functions under the
//! [`jpeg`], [`png`], and [`tiff`] modules (and `jpegturbo` when enabled),
//! plus [`functional::read_image_any_rgb8`] for a single-path RGB8 convenience.

/// Module to handle the error types for the io module.
pub mod error;

/// Module to handle the camera frame rate.
pub mod fps_counter;

/// High-level read and write functions for images.
pub mod functional;

pub mod limits;

/// TurboJPEG image encoding and decoding.
#[cfg(feature = "turbojpeg")]
pub mod jpegturbo;

/// PNG image encoding and decoding.
pub mod png;

/// JPEG image encoding and decoding.
pub mod jpeg;

/// WEBP image encoding and decoding
pub mod webp;

/// GStreamer video module for real-time video processing.
#[cfg(feature = "gstreamer")]
pub mod gstreamer;

// NOTE: remove in future release
#[deprecated(since = "0.1.10", note = "Use the gstreamer module instead")]
#[cfg(feature = "gstreamer")]
pub use gstreamer as stream;

/// TIFF image encoding and decoding.
pub mod tiff;

/// Image metadata helpers (EXIF parsing)
pub mod metadata;

/// V4L2 video module for real-time video processing.
#[cfg(all(feature = "v4l", target_os = "linux"))]
pub mod v4l;

/// RVL (Run-Length Variable) lossless depth codec.
pub mod rvl;

/// Internal utility functions for image bit depth conversion.
mod conv_utils;

pub use crate::metadata::{apply_exif_orientation, read_image_jpeg_auto_orient};