aboutsummaryrefslogtreecommitdiff
path: root/vendor/image/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/image/src/lib.rs')
-rw-r--r--vendor/image/src/lib.rs310
1 files changed, 0 insertions, 310 deletions
diff --git a/vendor/image/src/lib.rs b/vendor/image/src/lib.rs
deleted file mode 100644
index 88ad3c4..0000000
--- a/vendor/image/src/lib.rs
+++ /dev/null
@@ -1,310 +0,0 @@
-//! # Overview
-//!
-//! This crate provides native rust implementations of image encoding and decoding as well as some
-//! basic image manipulation functions. Additional documentation can currently also be found in the
-//! [README.md file which is most easily viewed on
-//! github](https://github.com/image-rs/image/blob/master/README.md).
-//!
-//! There are two core problems for which this library provides solutions: a unified interface for image
-//! encodings and simple generic buffers for their content. It's possible to use either feature
-//! without the other. The focus is on a small and stable set of common operations that can be
-//! supplemented by other specialized crates. The library also prefers safe solutions with few
-//! dependencies.
-//!
-//! # High level API
-//!
-//! Load images using [`io::Reader`]:
-//!
-//! ```rust,no_run
-//! use std::io::Cursor;
-//! use image::io::Reader as ImageReader;
-//! # fn main() -> Result<(), image::ImageError> {
-//! # let bytes = vec![0u8];
-//!
-//! let img = ImageReader::open("myimage.png")?.decode()?;
-//! let img2 = ImageReader::new(Cursor::new(bytes)).with_guessed_format()?.decode()?;
-//! # Ok(())
-//! # }
-//! ```
-//!
-//! And save them using [`save`] or [`write_to`] methods:
-//!
-//! ```rust,no_run
-//! # use std::io::{Write, Cursor};
-//! # use image::{DynamicImage, ImageOutputFormat};
-//! # #[cfg(feature = "png")]
-//! # fn main() -> Result<(), image::ImageError> {
-//! # let img: DynamicImage = unimplemented!();
-//! # let img2: DynamicImage = unimplemented!();
-//! img.save("empty.jpg")?;
-//!
-//! let mut bytes: Vec<u8> = Vec::new();
-//! img2.write_to(&mut Cursor::new(&mut bytes), image::ImageOutputFormat::Png)?;
-//! # Ok(())
-//! # }
-//! # #[cfg(not(feature = "png"))] fn main() {}
-//! ```
-//!
-//! With default features, the crate includes support for [many common image formats](codecs/index.html#supported-formats).
-//!
-//! [`save`]: enum.DynamicImage.html#method.save
-//! [`write_to`]: enum.DynamicImage.html#method.write_to
-//! [`io::Reader`]: io/struct.Reader.html
-//!
-//! # Image buffers
-//!
-//! The two main types for storing images:
-//! * [`ImageBuffer`] which holds statically typed image contents.
-//! * [`DynamicImage`] which is an enum over the supported ImageBuffer formats
-//! and supports conversions between them.
-//!
-//! As well as a few more specialized options:
-//! * [`GenericImage`] trait for a mutable image buffer.
-//! * [`GenericImageView`] trait for read only references to a GenericImage.
-//! * [`flat`] module containing types for interoperability with generic channel
-//! matrices and foreign interfaces.
-//!
-//! [`GenericImageView`]: trait.GenericImageView.html
-//! [`GenericImage`]: trait.GenericImage.html
-//! [`ImageBuffer`]: struct.ImageBuffer.html
-//! [`DynamicImage`]: enum.DynamicImage.html
-//! [`flat`]: flat/index.html
-//!
-//! # Low level encoding/decoding API
-//!
-//! Implementations of [`ImageEncoder`] provides low level control over encoding:
-//! ```rust,no_run
-//! # use std::io::Write;
-//! # use image::DynamicImage;
-//! # use image::ImageEncoder;
-//! # #[cfg(feature = "jpeg")]
-//! # fn main() -> Result<(), image::ImageError> {
-//! # use image::codecs::jpeg::JpegEncoder;
-//! # let img: DynamicImage = unimplemented!();
-//! # let writer: Box<dyn Write> = unimplemented!();
-//! let encoder = JpegEncoder::new_with_quality(&mut writer, 95);
-//! img.write_with_encoder(encoder)?;
-//! # Ok(())
-//! # }
-//! # #[cfg(not(feature = "jpeg"))] fn main() {}
-//! ```
-//! While [`ImageDecoder`] and [`ImageDecoderRect`] give access to more advanced decoding options:
-//!
-//! ```rust,no_run
-//! # use std::io::Read;
-//! # use image::DynamicImage;
-//! # use image::ImageDecoder;
-//! # #[cfg(feature = "png")]
-//! # fn main() -> Result<(), image::ImageError> {
-//! # use image::codecs::png::PngDecoder;
-//! # let img: DynamicImage = unimplemented!();
-//! # let reader: Box<dyn Read> = unimplemented!();
-//! let decoder = PngDecoder::new(&mut reader)?;
-//! let icc = decoder.icc_profile();
-//! let img = DynamicImage::from_decoder(decoder)?;
-//! # Ok(())
-//! # }
-//! # #[cfg(not(feature = "png"))] fn main() {}
-//! ```
-//!
-//! [`DynamicImage::from_decoder`]: enum.DynamicImage.html#method.from_decoder
-//! [`ImageDecoderRect`]: trait.ImageDecoderRect.html
-//! [`ImageDecoder`]: trait.ImageDecoder.html
-//! [`ImageEncoder`]: trait.ImageEncoder.html
-#![warn(missing_docs)]
-#![warn(unused_qualifications)]
-#![deny(unreachable_pub)]
-#![deny(deprecated)]
-#![deny(missing_copy_implementations)]
-#![cfg_attr(all(test, feature = "benchmarks"), feature(test))]
-// it's a bit of a pain otherwise
-#![allow(clippy::many_single_char_names)]
-// it's a backwards compatibility break
-#![allow(clippy::wrong_self_convention, clippy::enum_variant_names)]
-
-#[cfg(all(test, feature = "benchmarks"))]
-extern crate test;
-
-#[cfg(test)]
-#[macro_use]
-extern crate quickcheck;
-
-pub use crate::color::{ColorType, ExtendedColorType};
-
-pub use crate::color::{Luma, LumaA, Rgb, Rgba};
-
-pub use crate::error::{ImageError, ImageResult};
-
-pub use crate::image::{
- AnimationDecoder,
- GenericImage,
- GenericImageView,
- ImageDecoder,
- ImageDecoderRect,
- ImageEncoder,
- ImageFormat,
- ImageOutputFormat,
- // Iterators
- Pixels,
- Progress,
- SubImage,
-};
-
-pub use crate::buffer_::{
- GrayAlphaImage,
- GrayImage,
- // Image types
- ImageBuffer,
- Rgb32FImage,
- RgbImage,
- Rgba32FImage,
- RgbaImage,
-};
-
-pub use crate::flat::FlatSamples;
-
-// Traits
-pub use crate::traits::{EncodableLayout, Pixel, PixelWithColorType, Primitive};
-
-// Opening and loading images
-pub use crate::dynimage::{
- image_dimensions, load_from_memory, load_from_memory_with_format, open, save_buffer,
- save_buffer_with_format, write_buffer_with_format,
-};
-pub use crate::io::free_functions::{guess_format, load};
-
-pub use crate::dynimage::DynamicImage;
-
-pub use crate::animation::{Delay, Frame, Frames};
-
-// More detailed error type
-pub mod error;
-
-/// Iterators and other auxiliary structure for the `ImageBuffer` type.
-pub mod buffer {
- // Only those not exported at the top-level
- pub use crate::buffer_::{
- ConvertBuffer, EnumeratePixels, EnumeratePixelsMut, EnumerateRows, EnumerateRowsMut,
- Pixels, PixelsMut, Rows, RowsMut,
- };
-}
-
-// Math utils
-pub mod math;
-
-// Image processing functions
-pub mod imageops;
-
-// Io bindings
-pub mod io;
-
-// Buffer representations for ffi.
-pub mod flat;
-
-/// Encoding and decoding for various image file formats.
-///
-/// # Supported formats
-///
-/// <!--- NOTE: Make sure to keep this table in sync with the README -->
-///
-/// | Format | Decoding | Encoding |
-/// | ------ | -------- | -------- |
-/// | AVIF | Only 8-bit | Lossy |
-/// | BMP | Yes | Rgb8, Rgba8, Gray8, GrayA8 |
-/// | DDS | DXT1, DXT3, DXT5 | No |
-/// | Farbfeld | Yes | Yes |
-/// | GIF | Yes | Yes |
-/// | ICO | Yes | Yes |
-/// | JPEG | Baseline and progressive | Baseline JPEG |
-/// | OpenEXR | Rgb32F, Rgba32F (no dwa compression) | Rgb32F, Rgba32F (no dwa compression) |
-/// | PNG | All supported color types | Same as decoding |
-/// | PNM | PBM, PGM, PPM, standard PAM | Yes |
-/// | QOI | Yes | Yes |
-/// | TGA | Yes | Rgb8, Rgba8, Bgr8, Bgra8, Gray8, GrayA8 |
-/// | TIFF | Baseline(no fax support) + LZW + PackBits | Rgb8, Rgba8, Gray8 |
-/// | WebP | Yes | Rgb8, Rgba8 |
-///
-/// ## A note on format specific features
-///
-/// One of the main goals of `image` is stability, in runtime but also for programmers. This
-/// ensures that performance as well as safety fixes reach a majority of its user base with little
-/// effort. Re-exporting all details of its dependencies would run counter to this goal as it
-/// linked _all_ major version bumps between them and `image`. As such, we are wary of exposing too
-/// many details, or configuration options, that are not shared between different image formats.
-///
-/// Nevertheless, the advantage of precise control is hard to ignore. We will thus consider
-/// _wrappers_, not direct re-exports, in either of the following cases:
-///
-/// 1. A standard specifies that configuration _x_ is required for decoders/encoders and there
-/// exists an essentially canonical way to control it.
-/// 2. At least two different implementations agree on some (sub-)set of features in practice.
-/// 3. A technical argument including measurements of the performance, space benefits, or otherwise
-/// objectively quantified benefits can be made, and the added interface is unlikely to require
-/// breaking changes.
-///
-/// Features that fulfill two or more criteria are preferred.
-///
-/// Re-exports of dependencies that reach version `1` will be discussed when it happens.
-pub mod codecs {
- #[cfg(any(feature = "avif-encoder", feature = "avif-decoder"))]
- pub mod avif;
- #[cfg(feature = "bmp")]
- pub mod bmp;
- #[cfg(feature = "dds")]
- pub mod dds;
- #[cfg(feature = "dxt")]
- #[deprecated = "DXT support will be removed or reworked in a future version. Prefer the `squish` crate instead. See https://github.com/image-rs/image/issues/1623"]
- pub mod dxt;
- #[cfg(feature = "farbfeld")]
- pub mod farbfeld;
- #[cfg(feature = "gif")]
- pub mod gif;
- #[cfg(feature = "hdr")]
- pub mod hdr;
- #[cfg(feature = "ico")]
- pub mod ico;
- #[cfg(feature = "jpeg")]
- pub mod jpeg;
- #[cfg(feature = "exr")]
- pub mod openexr;
- #[cfg(feature = "png")]
- pub mod png;
- #[cfg(feature = "pnm")]
- pub mod pnm;
- #[cfg(feature = "qoi")]
- pub mod qoi;
- #[cfg(feature = "tga")]
- pub mod tga;
- #[cfg(feature = "tiff")]
- pub mod tiff;
- #[cfg(any(feature = "webp", feature = "webp-encoder"))]
- pub mod webp;
-}
-
-mod animation;
-#[path = "buffer.rs"]
-mod buffer_;
-mod color;
-mod dynimage;
-mod image;
-mod traits;
-mod utils;
-
-// Can't use the macro-call itself within the `doc` attribute. So force it to eval it as part of
-// the macro invocation.
-//
-// The inspiration for the macro and implementation is from
-// <https://github.com/GuillaumeGomez/doc-comment>
-//
-// MIT License
-//
-// Copyright (c) 2018 Guillaume Gomez
-macro_rules! insert_as_doc {
- { $content:expr } => {
- #[allow(unused_doc_comments)]
- #[doc = $content] extern { }
- }
-}
-
-// Provides the README.md as doc, to ensure the example works!
-insert_as_doc!(include_str!("../README.md"));