1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
//! # ez-pixmap //! //! A naive and easy inline pixmap (xpm-like) image decoder. //! This is non-compliant with xpm image format, however it's close enough. //! - Doesn't support monochrome nor symbolics. //! - Supports only 1 character per pixel. //! //! Main use case: Simple icon art. //! //! ## Usage //! ```ignored //! [dependencies] //! ez-pixmap = "0.2" //! ``` //! //! ```no_run //! extern crate ez_pixmap; //! //! const PXM: &[&str] = &[ //! "50 34 4 1", // <width> <height> <num of colors> <chars/pixels> //! " c black", // <char> c <color> //! "o c #ff9900", //! "@ c white", //! "# c None", //! // pixels //! "##################################################", //! "### ############################## ####", //! "### ooooo ########################### ooooo ####", //! "### oo oo ######################### oo oo ####", //! "### oo oo ####################### oo oo ####", //! "### oo oo ##################### oo oo ####", //! "### oo oo ################### oo oo ####", //! "### oo oo oo oo ####", //! "### oo oo ooooooooooooooo oo oo ####", //! "### oo ooooooooooooooooooooo oo ####", //! "### oo ooooooooooooooooooooooooooo ooo ####", //! "#### oo ooooooo ooooooooooooo ooooooo oo #####", //! "#### oo oooooooo ooooooooooooo oooooooo oo #####", //! "##### oo oooooooo ooooooooooooo oooooooo oo ######", //! "##### o ooooooooooooooooooooooooooooooo o ######", //! "###### ooooooooooooooooooooooooooooooooooo #######", //! "##### ooooooooo ooooooooo ooooooooo ######", //! "##### oooooooo @@@ ooooooo @@@ oooooooo ######", //! "##### oooooooo @@@@@ ooooooo @@@@@ oooooooo ######", //! "##### oooooooo @@@@@ ooooooo @@@@@ oooooooo ######", //! "##### oooooooo @@@ ooooooo @@@ oooooooo ######", //! "##### ooooooooo ooooooooo ooooooooo ######", //! "###### oooooooooooooo oooooooooooooo #######", //! "###### oooooooo@@@@@@@ @@@@@@@oooooooo #######", //! "###### ooooooo@@@@@@@@@ @@@@@@@@@ooooooo #######", //! "####### ooooo@@@@@@@@@@@ @@@@@@@@@@@ooooo ########", //! "######### oo@@@@@@@@@@@@ @@@@@@@@@@@@oo ##########", //! "########## o@@@@@@ @@@@@ @@@@@ @@@@@@o ###########", //! "########### @@@@@@@ @ @@@@@@@ ############", //! "############ @@@@@@@@@@@@@@@@@@@@@ #############", //! "############## @@@@@@@@@@@@@@@@@ ###############", //! "################ @@@@@@@@@ #################", //! "#################### #####################", //! "##################################################", //! ]; //! //! fn main() -> Result<(), Box<dyn std::error::Error>> { //! let my_image = ez_pixmap::RgbaImage::from(PXM)?; //! assert_eq!(my_image.width(), 50); //! assert_eq!(my_image.height(), 34); //! assert_eq!(my_image.data().len(), 50 * 34 * 4); // since it's rgba //! Ok(()) //! } //! ``` //! //! The list of supported color names can be found [here](https://github.com/MoAlyousef/ez-pixmap/blob/main/src/colors.rs). #![warn(missing_docs)] mod colors; mod image; pub use crate::image::*; #[macro_use] extern crate lazy_static;