5 个版本
0.2.0 | 2022年1月2日 |
---|---|
0.1.9 | 2021年8月15日 |
0.1.3 |
|
0.1.1 | 2021年6月22日 |
#401 in 图像
38 每月下载量
用于 lenna_cli
3.5MB
1K SLoC
lenna-core
Lenna 是一个图像处理算法和应用的库。
这是 lenna 的核心库。
快速入门
cargo build
运行测试
cargo test
cargo test --features=python
wasm-pack test --node
创建插件
use image::DynamicImage;
use lenna_core::core::processor::Processor;
use lenna_core::plugins::PluginRegistrar;
use lenna_core::ImageProcessor;
use lenna_core::ExifProcessor;
use lenna_core::ProcessorConfig;
lenna_core::export_plugin!(register);
extern "C" fn register(registrar: &mut dyn PluginRegistrar) {
registrar.add_plugin(Box::new(Plugin{ config: Config::default() }));
}
#[derive(Default, Clone, serde::Serialize, serde::Deserialize)]
struct Config {
}
#[derive(Clone)]
pub struct Plugin {
config: Config
};
impl Processor for Plugin {
fn name(&self) -> String {
"plugin".into()
}
fn title(&self) -> String {
"Plugin".into()
}
fn author(&self) -> String {
"chriamue".into()
}
fn description(&self) -> String {
"Plugin description.".into()
}
fn process(
&mut self,
config: ProcessorConfig,
image: &mut Box<lenna_core::LennaImage>,
) -> Result<(), Box<dyn std::error::Error>> {
self.config = serde_json::from_value(config.config).unwrap();
self.process_exif(&mut image.exif).unwrap();
self.process_image(&mut image.image).unwrap();
Ok(())
}
fn default_config(&self) -> serde_json::Value {
serde_json::to_value(Config::default()).unwrap()
}
}
impl ImageProcessor for Plugin {
fn process_image(
&self,
image: &mut Box<DynamicImage>,
) -> Result<(), Box<dyn std::error::Error>> {
let img = DynamicImage::ImageRgba8(image.to_rgba8());
*image = Box::new(img);
Ok(())
}
}
impl ExifProcessor for Plugin {}
🐍 构建 Python 绑定
为 Python 创建虚拟环境并使用 pip 安装 lenna-core。
virtualenv -p python3 .venv
source .venv/bin/activate
pip install .
python src/plugins/python/test.py
import lenna_core_py
print(lenna_core_py.Resize.description())
🌏 语言支持
Rust | JavaScript | Python | C++ | WASM |
---|---|---|---|---|
是 | 是 | 是 | 否 | 是 |
📜 许可证
本软件根据 MIT 许可证 © lenna-project。
依赖项
~18MB
~168K SLoC