12个不稳定版本 (5个破坏性更新)

0.6.0 2023年3月20日
0.5.0 2022年10月18日
0.4.0 2022年9月3日
0.3.2 2022年5月31日
0.1.1 2020年4月19日

#238 in 图像

Download history 138/week @ 2024-03-10 235/week @ 2024-03-17 253/week @ 2024-03-24 222/week @ 2024-03-31 211/week @ 2024-04-07 255/week @ 2024-04-14 308/week @ 2024-04-21 65/week @ 2024-04-28 218/week @ 2024-05-05 135/week @ 2024-05-12 84/week @ 2024-05-19 50/week @ 2024-05-26 27/week @ 2024-06-02 12/week @ 2024-06-09 24/week @ 2024-06-16 35/week @ 2024-06-23

每月下载量99次

MIT 许可证

345KB
5.5K SLoC

graphicsmagick-rs

Rustc Version Actions Crate API

GraphicsMagick-Logo

GraphicsMagick 的Rust绑定。

要求

需要 graphicsmagicklibgraphicsmagickclanglibclang

在Deepin/Ubuntu/Debian中,您可以通过以下方式安装它们

sudo apt install graphicsmagick libgraphicsmagick1-dev
sudo apt install llvm-dev libclang-dev clang

在构建之前,请检查 GraphicsMagickWand-config 是否可执行,或者正确指定环境变量 GRAPHICS_MAGICK_WAND_CONFIG

支持

  1. 支持并测试过的GraphicsMagick版本:>= 1.3.20

  2. 如果您想使用更高版本的函数,您应该在 Cargo.toml 中指定功能,例如

    featuers = ["v1_3_36"]
    
  3. GraphicsMagick 支持OpenMP,如果您使用启用了OpenMP的 cc 编译,您可以将环境变量 OMP_NUM_THREADS 设置为限制线程数或将 OMP_DISPLAY_ENV=TRUE 设置为在运行应用程序时显示OpenMP信息。

    有关详细信息,请参阅 http://www.graphicsmagick.org/OpenMP.html

示例

简单的调整大小示例

use anyhow::Context;
use graphicsmagick::{initialize, types::FilterTypes, wand::MagickWand};
use std::path::PathBuf;

fn main() -> anyhow::Result<()> {
    // This function should be invoked in the primary (original) thread
    // of the application's process, and before starting any OpenMP
    // threads, as part of program initialization.
    initialize();

    let path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
        .join("..")
        .join("meta")
        .join("GraphicsMagick-Logo.webp");
    let path = path.to_str().context("get image path failed")?;

    let mut mw = MagickWand::new();
    mw.read_image(path)?
        .resize_image(100, 100, FilterTypes::UndefinedFilter, 1.)?
        .write_image("/tmp/output.webp")?;

    Ok(())
}

许可证

MIT.

依赖关系

~0.3–3.5MB
~63K SLoC