[−]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 AsMut<ToneCurveRef> for ToneCurve
fn as_mut(&mut self) -> &mut ToneCurveRef
impl Drop for ToneCurve
fn drop(&mut self)
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 Deref for ToneCurve
impl DerefMut for ToneCurve
fn deref_mut(&mut self) -> &mut ToneCurveRef
impl BorrowMut<ToneCurveRef> for ToneCurve
fn borrow_mut(&mut self) -> &mut ToneCurveRef
impl Borrow<ToneCurveRef> for ToneCurve
fn borrow(&self) -> &ToneCurveRef
impl ForeignType for ToneCurve
Auto Trait Implementations
impl !Send for ToneCurve
impl Unpin for ToneCurve
impl !Sync for ToneCurve
impl UnwindSafe for ToneCurve
impl RefUnwindSafe for ToneCurve
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> 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, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,