7 个版本
0.3.0 | 2022 年 8 月 11 日 |
---|---|
0.2.3 | 2020 年 10 月 14 日 |
0.2.2 | 2020 年 9 月 17 日 |
0.2.1 | 2020 年 8 月 12 日 |
0.1.0 | 2020 年 4 月 1 日 |
#257 in 图像
53,685 个月下载量
用于 13 个库 (9 直接使用)
67KB
1.5K SLoC
img-parts
img-parts
库提供了一种低级 API,用于读取和写入各种图像格式的容器,以及一种高级 API,用于读取和写入原始 ICC 配置文件和 EXIF 元数据。
它目前支持 Jpeg
、Png
和 RIFF
(以及一些 WebP
的辅助函数)。
更多示例可以在 GitHub 上的 examples
目录中找到。
读取和写入原始 ICCP 和 EXIF 元数据
use std::fs::{self, File};
use img_parts::jpeg::Jpeg;
use img_parts::{ImageEXIF, ImageICC};
let input = fs::read("img.jpg")?;
let output = File::create("out.jpg")?;
let mut jpeg = Jpeg::from_bytes(input.into())?;
let icc_profile = jpeg.icc_profile();
let exif_metadata = jpeg.exif();
jpeg.set_icc_profile(Some(another_icc_profile.into()));
jpeg.set_exif(Some(new_exif_metadata.into()));
jpeg.encoder().write_to(output)?;
修改块
use std::fs::{self, File};
use img_parts::jpeg::{markers, Jpeg, JpegSegment};
use img_parts::Bytes;
let input = fs::read("img.jpg")?;
let output = File::create("out.jpg")?;
let mut jpeg = Jpeg::from_bytes(input.into())?;
let comment = Bytes::from("Hello, I'm writing a comment!");
let comment_segment = JpegSegment::new_with_contents(markers::COM, comment);
jpeg.segments_mut().insert(1, comment_segment);
jpeg.encoder().write_to(output)?;
许可证
许可协议为以下之一
- Apache 许可协议,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确说明,否则您提交给作品以包含在内的任何贡献将根据上述条款双许可,不附加任何额外条款或条件。
依赖项
~485KB