#图像处理 # #图形

lenna_core

Lenna 是一个图像处理算法和应用的库

5 个版本

0.2.0 2022年1月2日
0.1.9 2021年8月15日
0.1.3 2021年7月25日
0.1.1 2021年6月22日

#401 in 图像

38 每月下载量
用于 lenna_cli

MIT 许可证

3.5MB
1K SLoC

lenna-core

build Crates.io dependency status

Lenna 是一个图像处理算法和应用的库。

这是 lenna 的核心库。

Lenna CLI

快速入门

cargo build

运行测试

cargo test
cargo test --features=python
wasm-pack test --node

Build

创建插件

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 Rust JavaScript JavaScript Python Python C++ C++ WASM WASM

📜 许可证

本软件根据 MIT 许可证 © lenna-project

依赖项

~18MB
~168K SLoC