#image #decoder #format #encoding #pixmap #xpm

ez-pixmap

一个简单易用的内联Pixmap(类似xpm)图像解码器

5个版本

0.2.2 2021年2月27日
0.2.1 2021年2月26日
0.1.3 2021年2月24日

602图像

MIT 许可证

36KB
127

ez-pixmap

一个简单易用的内联Pixmap(类似xpm)图像解码器。它不符合xpm图像格式,但足够接近。

  • 不支持单色或符号。
  • 每个像素只支持一个字符。

主要用途:简单的图标艺术。

用法

[dependencies]
ez-pixmap = "0.2"
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(())
}

支持的颜色的列表可以在这里找到。

示例

查看示例目录以获取使用minifb和image crate的示例。

$ cargo run --example basic
$ cargo run --example image
$ cargo run --example minifb

alt_test

alt_test

依赖

~57KB