fix: make disable-hdri default to fix compile error
By making the disable-hdri feature a default, the `quantum_range()` function will be one which computes a value for `QuantumRange` based on a constant that rust-bindgen seemingly does not have any problem discovering. cargo test passes
This commit is contained in:
@ -5,6 +5,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
This file follows the convention described at
|
||||
[Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [Unreleased]
|
||||
### Changed
|
||||
- Feature `disable-hdri` is now enabled by default to work around an apparent
|
||||
bug with rust-bindgen that cannot discover the `QuantumRange` constant which
|
||||
is conditionally computed during compile-time in the MagickCore library.
|
||||
|
||||
## [0.19.0] - 2023-06-19
|
||||
### Added
|
||||
- walterbm: Add `coalesce()` for image coalesce.
|
||||
@ -49,7 +55,7 @@ This file follows the convention described at
|
||||
- liyunde: Fix path_separator on windows can not build
|
||||
- kz6wk9: Required version bump on bindgen.
|
||||
- asonix: Set environment variable with magickcore config flags
|
||||
- captainbland: Add workaround for QuantumRange not defined error when hdri is disabled
|
||||
- captainbland: Add workaround for `QuantumRange` not defined error when hdri is disabled
|
||||
|
||||
## [0.14.0] - 2020-05-21
|
||||
### Added
|
||||
|
||||
@ -18,5 +18,8 @@ bindgen = "0.68.1"
|
||||
pkg-config = "0.3"
|
||||
|
||||
[features]
|
||||
# Work-around for bindgen(?) not finding the QuantumRange definition ever since
|
||||
# MagickWand 7.1.1.17 (or .16) when this suddenly stopped working.
|
||||
default = ["disable-hdri"]
|
||||
# Workaround for bindgen bug when ImageMagick is compiled with disable-hdri
|
||||
disable-hdri = []
|
||||
|
||||
23
README.md
23
README.md
@ -42,29 +42,6 @@ When building on Windows, you will need to set the `IMAGE_MAGICK_DIR` environmen
|
||||
> cargo test
|
||||
```
|
||||
|
||||
### Build Troubleshooting
|
||||
|
||||
#### Error: cannot find value `QuantumRange` in module bindings
|
||||
|
||||
When attempting to build the library, you might see an error like this one:
|
||||
|
||||
```
|
||||
error[E0425]: cannot find value `QuantumRange` in module `bindings`
|
||||
--> C:\Users\charlie\.cargo\registry\src\github.com-1ecc6299db9ec823\magick_rust-0.9.0\src\wand\magick.rs:337:80
|
||||
|
|
||||
337 | if bindings::MagickSepiaToneImage(self.wand, threshold * bindings::QuantumRange) == bindings::MagickBooleanType::MagickTrue {
|
||||
|
|
||||
^^^^^^^^^^^^ not found in `bindings`
|
||||
|
||||
error: aborting due to previous error
|
||||
```
|
||||
|
||||
See [issue 40](https://github.com/nlfiedler/magick-rust/issues/40) on GitHub for some background. The issue seems to be that with HDRI disabled, rust-bindgen will not produce the bindings needed for the "quantum range" feature of ImageMagick (see [issue 316](https://github.com/rust-lang/rust-bindgen/issues/316)). To work-around this issue, you can disable HDRI support in your `Cargo.toml` file, like so:
|
||||
|
||||
```
|
||||
magick_rust = { version = "0.18.0", features = ["disable-hdri"] }
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
The API documentation is available at [github pages](https://nlfiedler.github.io/magick-rust) since the docs.rs system has a hard time building anything that requires an external library that is not wrapped in a "sys" style library. See [issue 57](https://github.com/nlfiedler/magick-rust/issues/57) for the "create a sys crate request."
|
||||
|
||||
@ -350,9 +350,7 @@ impl MagickWand {
|
||||
16 => Ok(65535.0f64),
|
||||
32 => Ok(4294967295.0f64),
|
||||
64 => Ok(18446744073709551615.0f64),
|
||||
_ => Err(MagickError(
|
||||
("Quantum depth must be one of 8, 16, 32 or 64"),
|
||||
)),
|
||||
_ => Err(MagickError("Quantum depth must be one of 8, 16, 32 or 64")),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user