diff options
author | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
commit | 1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch) | |
tree | 7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/jpeg-decoder/src/lib.rs | |
parent | 5ecd8cf2cba827454317368b68571df0d13d7842 (diff) | |
download | fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip |
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/jpeg-decoder/src/lib.rs')
-rw-r--r-- | vendor/jpeg-decoder/src/lib.rs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/vendor/jpeg-decoder/src/lib.rs b/vendor/jpeg-decoder/src/lib.rs new file mode 100644 index 0000000..ff1ceb1 --- /dev/null +++ b/vendor/jpeg-decoder/src/lib.rs @@ -0,0 +1,66 @@ +//! This crate contains a JPEG decoder. +//! +//! # Examples +//! +//! ``` +//! use jpeg_decoder::Decoder; +//! use std::fs::File; +//! use std::io::BufReader; +//! +//! let file = File::open("tests/reftest/images/extraneous-data.jpg").expect("failed to open file"); +//! let mut decoder = Decoder::new(BufReader::new(file)); +//! let pixels = decoder.decode().expect("failed to decode image"); +//! let metadata = decoder.info().unwrap(); +//! ``` +//! +//! Get metadata from a file without decoding it: +//! +//! ``` +//! use jpeg_decoder::Decoder; +//! use std::fs::File; +//! use std::io::BufReader; +//! +//! let file = File::open("tests/reftest/images/extraneous-data.jpg").expect("failed to open file"); +//! let mut decoder = Decoder::new(BufReader::new(file)); +//! decoder.read_info().expect("failed to read metadata"); +//! let metadata = decoder.info().unwrap(); +//! ``` + +#![deny(missing_docs)] +#![deny(unsafe_code)] +#![cfg_attr(feature = "platform_independent", forbid(unsafe_code))] + +extern crate alloc; +extern crate core; + +#[cfg(feature = "rayon")] +extern crate rayon; + +pub use decoder::{ColorTransform, Decoder, ImageInfo, PixelFormat}; +pub use error::{Error, UnsupportedFeature}; +pub use parser::CodingProcess; + +use std::io; + +#[cfg(not(feature = "platform_independent"))] +mod arch; +mod decoder; +mod error; +mod huffman; +mod idct; +mod marker; +mod parser; +mod upsampler; +mod worker; + +fn read_u8<R: io::Read>(reader: &mut R) -> io::Result<u8> { + let mut buf = [0]; + reader.read_exact(&mut buf)?; + Ok(buf[0]) +} + +fn read_u16_from_be<R: io::Read>(reader: &mut R) -> io::Result<u16> { + let mut buf = [0, 0]; + reader.read_exact(&mut buf)?; + Ok(u16::from_be_bytes(buf)) +} |