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 图像
每月下载量99次
345KB
5.5K SLoC
graphicsmagick-rs

GraphicsMagick 的Rust绑定。
要求
需要 graphicsmagick
,libgraphicsmagick
,clang
和 libclang
。
在Deepin/Ubuntu/Debian中,您可以通过以下方式安装它们
sudo apt install graphicsmagick libgraphicsmagick1-dev
sudo apt install llvm-dev libclang-dev clang
在构建之前,请检查 GraphicsMagickWand-config
是否可执行,或者正确指定环境变量 GRAPHICS_MAGICK_WAND_CONFIG
。
支持
-
支持并测试过的GraphicsMagick版本:
>= 1.3.20
。 -
如果您想使用更高版本的函数,您应该在
Cargo.toml
中指定功能,例如featuers = ["v1_3_36"]
-
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