Crate graphicsmagick[−][src]
Expand description
GraphicsMagick binding for Rust.
Under development.
Requirement
Require graphicsmagick
, libgraphicsmagick
, clang
and libclang
.
In Deepin/Ubuntu/Debian, you can install these by:
sudo apt install graphicsmagick libgraphicsmagick1-dev
sudo apt install llvm-dev libclang-dev clang
Before build, please check the GraphicsMagickWand-config
is executable,
or specify the environment variable GRAPHICS_MAGICK_WAND_CONFIG
correctly.
Support
-
Support and tested GraphicsMagick version:
1.3.20 ~ 1.3.35
. -
There are some version flag in the documentation, like
gm_v_1_3_26
, meaning that yourGraphicsMagick
version must be greater than or equal to1.3.26
to used this method. -
GraphicsMagick
supports OpenMP if you are compiling with OpenMP-enabledcc
, you can set the environment variableOMP_NUM_THREADS
to limit the number of threads or setOMP_DISPLAY_ENV=TRUE
to display the OpenMP info when running the application.Read http://www.graphicsmagick.org/OpenMP.html for details.
Example
Simple resize example:
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(()) }
Re-exports
pub use crate::error::Error; | |
pub use crate::error::Result; |
Modules
error | Crate level errors. |
types | |
wand |
Traits
MaxRGB | For |
Functions
has_initialized | Check if |
initialize | Wrapper of |
max_rgb | Wrapper of |