3 个版本 (重大变更)

0.3.0 2024 年 1 月 9 日
0.2.0 2021 年 1 月 6 日
0.1.0 2020 年 11 月 5 日

#95图像

Download history • Rust 包仓库 699/week @ 2024-04-23 • Rust 包仓库 820/week @ 2024-04-30 • Rust 包仓库 578/week @ 2024-05-07 • Rust 包仓库 1344/week @ 2024-05-14 • Rust 包仓库 1503/week @ 2024-05-21 • Rust 包仓库 975/week @ 2024-05-28 • Rust 包仓库 1002/week @ 2024-06-04 • Rust 包仓库 1156/week @ 2024-06-11 • Rust 包仓库 1068/week @ 2024-06-18 • Rust 包仓库 957/week @ 2024-06-25 • Rust 包仓库 1070/week @ 2024-07-02 • Rust 包仓库 1146/week @ 2024-07-09 • Rust 包仓库 1054/week @ 2024-07-16 • Rust 包仓库 1055/week @ 2024-07-23 • Rust 包仓库 981/week @ 2024-07-30 • Rust 包仓库 994/week @ 2024-08-06 • Rust 包仓库

4,298 每月下载量
27 个crate中使用 (2 直接)

MIT 许可证

275KB
6K SLoC

qcms

Crates.io Documentation

Firefox 用于在ICC配置文件之间转换图像数据的库。

示例

    // Decode the jpeg
    let mut d = jpeg_decoder::Decoder::new(std::fs::File::open("/Users/jrmuizel/Desktop/DSCF2460.jpg").unwrap());
    let mut data = d.decode().unwrap();
    let info = d.info().unwrap();

    // Extract the profile after decode
    let profile = d.icc_profile().unwrap();

    // Create a new qcms Profile
    let input = qcms::Profile::new_from_slice(&profile).unwrap();
    let mut output = qcms::Profile::new_sRGB();
    output.precache_output_transform();

    // Create a transform between input and output profiles and apply it.
    let xfm = qcms::Transform::new(&input, &output, qcms::DataType::RGB8, qcms::Intent::default()).unwrap();
    xfm.apply(&mut data);

    // write the result to a PNG
    let mut encoder = png::Encoder::new(std::fs::File::create("out.png").unwrap(), info.width as u32, info.height as u32);
    encoder.set_color(png::ColorType::Rgb);
    encoder.set_srgb(png::SrgbRenderingIntent::Perceptual);
    let mut writer = encoder.write_header().unwrap();
    writer.write_image_data(&data).unwrap(); // Save

这个库最初是用C语言编写的,使用 c2rust 转换为Rust,然后重构为更安全且更符合Rust风格。

依赖项