2 个不稳定版本
0.5.0-rc0 | 2024年4月7日 |
---|---|
0.4.0 | 2023年11月16日 |
938 在 图像 中排名
584 每月下载量
用于 zune-image
120KB
2K SLoC
zune-psd
一个简单的 Photoshop 读取器。
这个crate不处理任何复杂的Photoshop特性,包括图层、混合、元数据提取等,它只是复制一些它认为是基图的字节,因此可能不适合您的需求。
用法
- 首先将其包含在您的
Cargo.toml
cargo add zune-psd
或将其目录包含在您的 Cargo.toml
[dependencies]
zune-psd="0.4"
然后使用任一 decode_
变体获取像素数据 decode_raw
总是返回 Vec<u8>
,而 decode
通过图像深度(8位或16位)区分返回类型。
速度
解码器相当快,我们不进行任何复杂的处理,因此没有必要与其他crate进行比较(我不确定是否有任何支持完全解析),因此没有基准测试。
安全性
在CI中对crate进行模糊测试,以确保不受信任的输入不会导致panic
lib.rs
:
一个简单的 PSD 解码器
这个crate提供了一个简单的 Photoshop PSD 读取器
简单的意思
Photoshop 是一个复杂的格式,可能是最复杂的格式之一,这个库并不声称解析Photoshop及其派生的大量图像。
它不检查图层,不喜欢 CMYKa 图像,只读取灰度、RGB 和 RGBA 图像,忽略调色、多通道以及其他我从未听说过的 PSD 特性。它简单到极致。
有时这就可以了...
示例
- 读取 psd 文件
use zune_psd::errors::PSDDecodeErrors;
use zune_core::result::DecodingResult;
use zune_psd::PSDDecoder;
fn main()->Result<(),PSDDecodeErrors>{
use zune_core::bytestream::ZCursor;
let mut decoder = PSDDecoder::new(ZCursor::new(&[]));
let px = decoder.decode()?;
// we need to handle u8 and u16 since the decoder supports those depths
match px {
DecodingResult::U8(_) => {}
DecodingResult::U16(_) => {}
_=>unreachable!()
};
Ok(())
}