20个稳定版本
4.0.5 | 2024年2月27日 |
---|---|
4.0.4 | 2023年11月23日 |
4.0.3 | 2023年9月2日 |
4.0.1 | 2023年4月5日 |
0.5.0 |
|
#852 in 图像
19,666 每月下载量
用于 21 个crate(3个直接使用)
1.5MB
26K SLoC
Little CMS的绑定用于Rust
使LCMS C API在Rust中可用。还有一个更高级的包装器。
它与2.16版本保持最新,也支持旧版本。支持Linux、macOS和Windows。其他平台也可能支持。
此crate需要Rust 1.65或更高版本。
与C API的不同之处
此crate改进了bindgen的绑定,使其更具Rust风格
- 类型名称没有前缀
cms
,例如cmsColorSpace
是ColorSpace
。- 所有C函数名称保持不变(带有前缀,例如
fn cmsReadTag()
)。
- 所有C函数名称保持不变(带有前缀,例如
- 枚举值没有前缀
cmsSig
,例如cmsSigLabData
是LabData
。 - 某些参数使用更具体的类型,例如使用
Intent::Perceptual
枚举而不是INTENT_PERCEPTUAL
整数。
动态链接与静态链接配置
如果设置了环境变量 LCMS2_LIB_DIR
,并且路径中包含静态或动态库,则无论其他设置如何,都将使用此库。
如果设置了环境变量 LCMS2_STATIC
,它将优先选择静态链接。
该软件包支持"静态"和"动态" Cargo 功能。如果启用"动态"(默认值),则如果安装并正确工作 pkg-config
,则将链接到系统范围内的 LCMS2 共享库。通常您还需要在系统上安装类似 lcms2-dev
的包。
如果 pkg-config
无法正常工作(例如在 Windows 上),或者启用了"静态"功能,它将从源代码构建捆绑的 LCMS 2.15。
对于使用此 sys crate 作为依赖项的 Rust 构建脚本,Cargo 将设置 DEP_LCMS2_INCLUDE
环境变量为 连接包含目录的路径,其中可能包含 lcms2.h
。这仅适用于您直接使用库编译 C 代码的情况。
贡献
此存储库使用 git 子模块,可能会引起不便。请确保使用带有 git clone --recursive
的命令进行克隆,或者运行
git submodule update --init