#image-processing #image-encoding #image #codec #color-space #bit #depth

no-std zune-core

Core utilities for image processing in the zune family of crates

12 releases

0.5.0-rc2 Jul 21, 2024
0.5.0-rc0 Apr 7, 2024
0.4.12 Jan 15, 2024
0.4.11 Dec 2, 2023
0.2.12 Mar 29, 2023

#139 in Images

Download history 146327/week @ 2024-08-14 157802/week @ 2024-08-21 115266/week @ 2024-08-28 132341/week @ 2024-09-04 133736/week @ 2024-09-11 134510/week @ 2024-09-18 147790/week @ 2024-09-25 152063/week @ 2024-10-02 144636/week @ 2024-10-09 164482/week @ 2024-10-16 165794/week @ 2024-10-23 175029/week @ 2024-10-30 176199/week @ 2024-11-06 185046/week @ 2024-11-13 188510/week @ 2024-11-20 135704/week @ 2024-11-27

718,758 downloads per month
Used in 292 crates (20 directly)

MIT OR Apache-2.0 OR Zlib

94KB
1.5K SLoC

Zune core

Core primitives necessary for image manipulations

This crate contains small set of primitives necessary for image manipulations which are shared among most zune- family of decoders and encoders.

Items present

Currently,it contains.

  • Colorspace definitions
  • Bit depth definitions.
  • Decoder and encoder options

lib.rs:

Core routines shared by all libraries

This crate provides a set of core routines shared by the decoders and encoders under zune umbrella

It currently contains

  • A bytestream reader and writer with endian aware reads and writes
  • Colorspace and bit depth information shared by images
  • Image decoder and encoder options
  • A simple enum type to hold image decoding results.

This library is #[no_std] with alloc feature needed for defining Vec which we need for storing decoded bytes.

Features

  • no_std: Enables #[no_std] compilation support.

  • serde: Enables serializing of some of the data structures present in the crate

Input/Output

zune-image supports many different input and output devices. For input readers we can read anything that implements BufRead + Seek and provide an optimized routine for handling in memory buffers by using ZCursor.

For output, we support anything that implements Write trait, this includes files, standard io streams network sockets, etc

In a no_std environment. We can write to in memory buffers &mut [u8] and &mut Vec<u8>

If you have an in memory buffer, use ZCursor, it's optimized for in memory buffers.

Dependencies

~180KB