#bmp #image #reading #decoding #order

bmp-encoder

一个用于在Rust中读取和写入BMP图像的小型库

1 个不稳定版本

使用旧的Rust 2015

0.1.4 2016年8月22日

#19 in #bmp

MIT 协议

93KB
847

rust-bmp

Build Status

完整文档

一个用于读取和写入位图图像的小模块。请参阅文档了解BMP编码和解码支持的当前状态。

用法

库的更新版本应在 crates.io 上提供。将以下内容添加到您的 Cargo.toml 中以将其作为依赖项。

[dependencies]
bmp = "*"

###初始化 使用 new 函数初始化一个新的图像,通过指定 widthheight

extern crate bmp;
use bmp::Image;

let mut img = Image::new(100, 100);

###编辑 使用 get_pixelset_pixel 函数编辑图像数据。通过指定 path 使用 save 函数保存图像。该函数返回一个 IoResult,指示保存是否成功。

let pixel = img.get_pixel(0, 0);
img.set_pixel(50, 50, Pixel { r: 255, g: 255, b: 255 });
let _ = img.save("path/to/img.bmp");

###打开 使用 open 函数通过指定 path 打开现有的图像。该函数返回一个 BmpResult,其中包含一个 Image 或一个 BmpError

extern crate bmp;

let img = bmp::open("path/to/img.bmp").unwrap_or_else(|e| {
    panic!("Failed to open: {}", e);
});

坐标约定

BMP图像按行主序访问,其中点(0,0)定义为图像的右上角。示例

#[macro_use]
extern crate bmp;
use bmp::{Image, Pixel};

fn main() {
    let mut img = Image::new(256, 256);

    for (x, y) in img.coordinates() {
        img.set_pixel(x, y, px!(x, y, 200));
    }
    let _ = img.save("img.bmp");
}

依赖关系