Struct lcms2::ToneCurveRef
[−]
pub struct ToneCurveRef(_);
Tone curves are powerful constructs that can contain curves specified in diverse ways.
The curve is stored in segments, where each segment can be sampled or specified by parameters. A 16.bit simplification of the whole curve is kept for optimization purposes. For float operation, each segment is evaluated separately. Plug-ins may be used to define new parametric schemes.
Methods
impl ToneCurveRef
[src]
fn reversed(&self) -> ToneCurve
Creates a tone curve that is the inverse of given tone curve.
fn reversed_samples(&self, samples: usize) -> ToneCurve
Creates a tone curve that is the inverse of given tone curve. In the case it couldn’t be analytically reversed, a tablulated curve of nResultSamples is created.
fn join(&self, y: &ToneCurveRef, points: usize) -> ToneCurve
Composites two tone curves in the form Y-1(X(t)) (self is X, the argument is Y)
fn is_multisegment(&self) -> bool
Returns TRUE if the tone curve contains more than one segment, FALSE if it has only one segment.
fn is_linear(&self) -> bool
Returns an estimation of cube being an identity (1:1) in the [0..1] domain. Does not take unbounded parts into account. This is just a coarse approximation, with no mathematical validity.
fn is_monotonic(&self) -> bool
Returns an estimation of monotonicity of curve in the [0..1] domain. Does not take unbounded parts into account. This is just a coarse approximation, with no mathematical validity.
fn is_descending(&self) -> bool
Does not take unbounded parts into account.
fn parametric_type(&self) -> i32
fn estimated_gamma(&self, precision: f64) -> Option<f64>
Estimates the apparent gamma of the tone curve by using least squares fitting. Precision: The maximum standard deviation allowed on the residuals, 0.01 is a fair value, set it to a big number to fit any curve, mo matter how good is the fit.
fn smooth(&mut self, lambda: f64) -> bool
Smoothes tone curve according to the lambda parameter. From: Eilers, P.H.C. (1994) Smoothing and interpolation with finite differences. in: Graphic Gems IV, Heckbert, P.S. (ed.), Academic press.
fn estimated_entries(&self) -> &[u16]
Tone curves do maintain a shadow low-resolution tabulated representation of the curve. This function returns a pointer to this table.
fn eval<ToneCurveValue: FloatOrU16>(&self, v: ToneCurveValue) -> ToneCurveValue
Evaluates the given number (u16 or f32) across the given tone curve.
This function is significantly faster for u16, since it uses a pre-computed 16-bit lookup table.
Trait Implementations
impl ForeignTypeRef for ToneCurveRef
type CType = ToneCurve
The raw C type.
unsafe fn from_ptr<'a>(ptr: *mut Self::CType) -> &'a Self
Constructs a shared instance of this type from its raw type.
unsafe fn from_ptr_mut<'a>(ptr: *mut Self::CType) -> &'a mut Self
Constructs a mutable reference of this type from its raw type.
fn as_ptr(&self) -> *mut Self::CType
Returns a raw pointer to the wrapped value.