pub struct ConvertOptions {
pub gray_expand: GrayExpand,
pub alpha_policy: AlphaPolicy,
pub depth_policy: DepthPolicy,
pub luma: Option<LumaCoefficients>,
}Expand description
Explicit options for pixel format conversion. All lossy operations require a policy choice — no silent defaults.
Construct via struct literal for full control, or use the convenience
constructors and with_* builders for common patterns:
use zenpixels::{ConvertOptions, AlphaPolicy, DepthPolicy};
// Forbid all lossy operations (safe default)
let strict = ConvertOptions::forbid_lossy();
// Allow common lossy operations with sensible defaults
let permissive = ConvertOptions::permissive();
// Customize from a preset
let custom = ConvertOptions::permissive()
.with_alpha_policy(AlphaPolicy::CompositeOnto { r: 255, g: 255, b: 255 })
.with_depth_policy(DepthPolicy::Truncate);Fields§
§gray_expand: GrayExpandHow to expand grayscale to RGB.
alpha_policy: AlphaPolicyHow to handle alpha removal.
depth_policy: DepthPolicyHow to handle depth reduction.
luma: Option<LumaCoefficients>Luma coefficients for RGB→Gray conversion. None means
RGB→Gray is forbidden (returns ConvertError::RgbToGray).
Implementations§
Source§impl ConvertOptions
impl ConvertOptions
Sourcepub const fn forbid_lossy() -> ConvertOptions
pub const fn forbid_lossy() -> ConvertOptions
Forbid all lossy operations.
- Alpha removal: forbidden (returns error)
- Depth reduction: forbidden (returns error)
- RGB→Gray: forbidden (returns error)
- Gray→RGB: broadcast (lossless)
Use this as a starting point when you want to ensure no data loss,
then selectively relax with with_* methods.
Sourcepub const fn permissive() -> ConvertOptions
pub const fn permissive() -> ConvertOptions
Allow common lossy operations with sensible defaults.
- Alpha removal: discard only if all pixels are opaque
- Depth reduction: round to nearest
- RGB→Gray: BT.709 luma coefficients
- Gray→RGB: broadcast (lossless)
Sourcepub const fn with_alpha_policy(self, policy: AlphaPolicy) -> ConvertOptions
pub const fn with_alpha_policy(self, policy: AlphaPolicy) -> ConvertOptions
Set the alpha removal policy.
Sourcepub const fn with_depth_policy(self, policy: DepthPolicy) -> ConvertOptions
pub const fn with_depth_policy(self, policy: DepthPolicy) -> ConvertOptions
Set the depth reduction policy.
Sourcepub const fn with_gray_expand(self, expand: GrayExpand) -> ConvertOptions
pub const fn with_gray_expand(self, expand: GrayExpand) -> ConvertOptions
Set the grayscale expansion method.
Sourcepub const fn with_luma(self, luma: Option<LumaCoefficients>) -> ConvertOptions
pub const fn with_luma(self, luma: Option<LumaCoefficients>) -> ConvertOptions
Set the luma coefficients for RGB→Gray conversion.
Pass None to forbid RGB→Gray conversion.
Trait Implementations§
Source§impl Clone for ConvertOptions
impl Clone for ConvertOptions
Source§fn clone(&self) -> ConvertOptions
fn clone(&self) -> ConvertOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more