# jpeg-aigc-meta-rs **Repository Path**: ByteDance/jpeg-aigc-meta-rs ## Basic Information - **Project Name**: jpeg-aigc-meta-rs - **Description**: Sample Implementation of the Chinese National Standard for JPEG AIGC Identification。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JPEG AIGC Meta Label Rust library 本项目根据 [《网络安全技术 人工智能生成合成内容标识方法》](https://www.tc260.org.cn/upload/2025-03-15/1742009439794081593.pdf) 标准,实现了对JPEG文件中AIGC元数据的读取和写入功能。旨在为外部开发者提供一个可参考的实现范例。 ## 结构 * `jpg_aigc_meta`: 核心库,实现了JPEG元数据标识的读出和写入能力。 * `jpg_aigc_meta_clib`: C动态库,封装了核心库的功能,提供其他语言调用能力。 * `jpg_aigc_meta_client`: 命令行客户端,提供了一个可执行文件用于读写元数据标识。 ## 使用说明 ### 作为库使用 #### Rust项目 不提供发布版本,可直接依赖 `jpg_aigc_meta` 提供的能力 `read_aigc_meta`、`save_aigc_meta`。 #### C/C++ 项目 可以使用 `jpg_aigc_meta_clib` 生成的动态库。 1. 构建动态库: ``` cd ./jpg_aigc_meta_clib cargo build --release ``` 动态库文件将会生成在 target/release 目录下。 2. 在 C/C++ 代码中包含头文件 `cn_jpg_aigc_meta_sdk.h` 。 4. 头文件中定义了以下函数: ``` // 读取元数据 bool read_meta(const char *asset_path, void *context, MetaCallback callback); // 写入元数据 bool write_meta(const char *input_path,                 const char *output_path,                 const char *content_provider,                 const char *label,                 const char *provider_id,                 bool write_as_producer,                 void *context,                 MetaCallback callback); ``` 需要实现一个 MetaCallback 回调函数来处理返回的结果,该回调函数将在调用函数的同一线程上执行。 ### 命令行客户端 可以使用 `jpg_aigc_meta_client` 来读取或写入JPEG文件的元数据。 **写入元数据:** ```bash cargo run --bin jpg_aigc_meta_client -- \ --type write \ --src <原始JPEG文件路径> \ --dest <输出JPEG文件路径> \ --label