[−]Struct lcms2::ToneCurve
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.
Owned version of ToneCurveRef
Methods
impl ToneCurve
[src]
pub fn new(gamma: f64) -> Self
[src]
Simplified wrapper to new_parametric
. Builds a parametric curve of type 1.
pub fn new_tabulated(values: &[u16]) -> Self
[src]
Builds a tone curve based on a table of 16-bit values. Tone curves built with this function are restricted to 0…1.0 domain.
pub fn new_tabulated_float(values: &[f32]) -> Self
[src]
Builds a tone curve based on a table of floating point values. Tone curves built with this function are not restricted to 0…1.0 domain.
pub fn new_parametric(curve_type: u16, params: &[f64]) -> LCMSResult<Self>
[src]
See Table 52 in LCMS documentation for descriptino of the types.
- Exponential
- CIE 122-1966
- IEC 61966-3
- IEC 61966-2.1 (sRGB)
- See PDF
- Identical to 5, unbounded.
- See PDF
- See PDF
- (108) S-Shaped sigmoidal
Always use 10-parameter slice for plug-in types.
Methods from Deref<Target = ToneCurveRef>
pub fn reversed(&self) -> ToneCurve
[src]
Creates a tone curve that is the inverse of given tone curve.
pub fn reversed_samples(&self, samples: usize) -> ToneCurve
[src]
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.
pub fn join(&self, y: &ToneCurveRef, points: usize) -> ToneCurve
[src]
Composites two tone curves in the form Y^-1(X(t)) (self is X, the argument is Y)
pub fn is_multisegment(&self) -> bool
[src]
Returns TRUE if the tone curve contains more than one segment, FALSE if it has only one segment.
pub fn is_linear(&self) -> bool
[src]
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.
pub fn is_monotonic(&self) -> bool
[src]
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.
pub fn is_descending(&self) -> bool
[src]
Does not take unbounded parts into account.
pub fn parametric_type(&self) -> i32
[src]
pub fn estimated_gamma(&self, precision: f64) -> Option<f64>
[src]
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.
pub fn smooth(&mut self, lambda: f64) -> bool
[src]
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.
pub fn estimated_entries(&self) -> &[u16]
[src]
Tone curves do maintain a shadow low-resolution tabulated representation of the curve. This function returns a pointer to this table.
pub fn eval<ToneCurveValue: FloatOrU16>(
&self,
v: ToneCurveValue
) -> ToneCurveValue
[src]
&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 Drop for ToneCurve
fn drop(&mut self)
impl AsMut<ToneCurveRef> for ToneCurve
fn as_mut(&mut self) -> &mut ToneCurveRef
impl AsRef<ToneCurveRef> for ToneCurve
fn as_ref(&self) -> &ToneCurveRef
impl Clone for ToneCurve
fn clone(&self) -> ToneCurve
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl DerefMut for ToneCurve
fn deref_mut(&mut self) -> &mut ToneCurveRef
impl Deref for ToneCurve
impl Borrow<ToneCurveRef> for ToneCurve
fn borrow(&self) -> &ToneCurveRef
impl BorrowMut<ToneCurveRef> for ToneCurve
fn borrow_mut(&mut self) -> &mut ToneCurveRef
impl ForeignType for ToneCurve
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,