#png #jpeg #image #image-format

pb-imgsize

Rust库,用于检测PNG和JPEG图像的尺寸

2个版本

0.2.5 2023年6月20日
0.2.4 2023年6月20日

#451 in 图像

MIT许可证

210KB
581

pb-imgsize

Rust中的快速JPEG和PNG图像元数据读取器。

这个Rust库提供了一个高效的方法来提取JPEG和PNG图像文件中的图像尺寸(宽度和高度)以及嵌入的注释,而不需要解码整个图像。这个库的主要关注点是尽可能快地执行这些操作。

特性

  • 支持JPEG和PNG图像格式。
  • 读取图像尺寸(宽度和高度)。
  • 从图像数据中提取注释。
  • 轻量级且高效,专为速度设计。

安装

pb-imgsize 添加到您的 Cargo.toml 文件中

[dependencies]
pb-imgsize = "0.1.0"

用法

在Rust文件中包含库

use pb_imgsize as imgsize;

从图像文件读取

要读取图像文件的元数据,请使用 read_file 函数

let metadata = imgsize::read_file("path/to/image.jpg").unwrap();

从字节切片读取

要读取字节切片的元数据,请使用 read_bytes 函数

let data = include_bytes!("path/to/image.jpg");
let metadata = imgsize::read_bytes(data).unwrap();

这两个函数都返回一个包含 widthheightcomments 字段的 ImageMetadata 结构体。

pub struct ImageMetadata {
    pub width: u32,
    pub height: u32,
    pub comments: Vec<Vec<u8>>,
}

示例

以下是一个示例,展示了如何使用 pb-imgsize 从JPEG文件读取元数据

use pb_imgsize as imgsize;

fn main() -> Result<(), imgsize::Error> {
    let metadata = imgsize::read_file("path/to/image.jpg")?;
    println!("Width: {}", metadata.width);
    println!("Height: {}", metadata.height);
    for comment in metadata.comments {
        println!("Comment: {}", String::from_utf8_lossy(&comment));
    }
    Ok(())
}

错误处理

库定义了一个 Error 枚举,它封装了尝试读取图像数据时可能发生的各种错误。存在针对I/O错误和解码错误的特定错误类型。

测试

要运行测试

cargo test

许可证

MIT

贡献

欢迎贡献!请在本项目中参与时遵守项目的行为准则。

如果您有任何问题或功能请求,请随时提交问题或拉取请求。


有关更多详细信息,请参阅 pb-imgsize 库的Rust文档。

依赖关系