#ppm #image #pgm #graphics #file-format #pbm #netpbm

ductr

一个小型crate,用于读取、写入和简单操作便携式像素图格式家族

1个不稳定版本

0.0.1 2022年12月23日

#6 in #pgm

GPL-3.0-only

30KB
284 代码行

🎨 Ductr

一个小型struct crate,用于读取、写入和简单操作便携式像素图格式家族

🧠 设计

此crate的开发重点是快速和简单的调试。将字节数组快速打印到可视文件,在调试基本的图形和图像操作算法时非常有用,便携式像素图家族格式也是设置最快的之一。

将来这个crate可能会扩展到其他光栅文件格式,如JPEG或BMP

🖥️ 使用方法

以下crate可以通过在项目的Cargo.toml文件中输入以下内容来使用

[dependencies]
ductr = "0.0.1"

⚙️ 示例

use ductr::AnymapImage;

// Creating a 100x100 black pbm image

// Prepare buffer to be written to pbm format
let buffer = vec![1; 100*100];
 
// Create AnymapImage object with pbm constructor
let pbm_black = AnymapImage::pbm(buffer, 100, 100).unwrap();

// Write pbm as binary file 
pbm_black.write_as_binary("pbm_black_binary.pbm").expect("Error: could not to binary file.");
use ductr::AnymapImage;

// Inverting the colors of a given ppm image

// Create AnymapImage object from binary ppm image file
let mut cat = AnymapImage::read_from_binary("tests/images/cat_binary.ppm").expect("Error: could not read from binary file");

// Invert the image
cat.invert();

// Write ppm as binary file
cat.write_as_binary("tests/images/cat_inverted.pnm").expect("Error: could not write to binary file");

📌 关于格式的其他信息

👤 作者

Jonathan Kocevar

📝 许可证

本项目受GNU通用公共许可证v3.0条款的约束。

无运行时依赖