/*
* @(#)ImageAdjustmentModel.java 1.0 2012-01-18
*
* Copyright (c) 2012 Werner Randelshofer, Goldau, Switzerland.
* All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the
* license agreement you entered into with Werner Randelshofer.
* For details see accompanying license terms.
*/
package org.monte.media.converter;
import java.beans.PropertyChangeListener;
/**
* {@code ImageAdjustmentModel}.
*
* @author Werner Randelshofer
* @version 1.0 2012-01-18 Created.
*/
public interface ColorAdjustModel {
/** Level adjustment: white point in the range [0,1].
*/
public final static String WHITE_POINT_PROPERTY = "whitePoint";
/** Level adjustment: black point in the range [0,1].
*/
public final static String BLACK_POINT_PROPERTY = "blackPoint";
/** Level adjustment: mid point in the range [0,1].
*/
public final static String MID_POINT_PROPERTY = "midPoint";
/** Exposure adjustment in the range [-1,1].
*/
public final static String EXPOSURE_PROPERTY = "exposure";
/** Brightness adjustment in the range [-1,1].
*/
public final static String BRIGHTNESS_PROPERTY = "brightness";
/** Contrast adjustment in the range [-1,1].
*/
public final static String CONTRAST_PROPERTY = "contrast";
/** Saturation adjustment in the range [0,1].
*/
public final static String SATURATION_PROPERTY = "saturation";
/** Definition adjustment in the range [0,1].
*/
public final static String DEFINITION_PROPERTY = "definition";
/** Higlights adjustment in the range [0,1].
*/
public final static String HIGHLIGHTS_PROPERTY = "highlights";
/** Shadows adjustment in the range [0,1].
*/
public final static String SHADOWS_PROPERTY = "shadows";
/** Sharpness adjustment in the range [0,1].
*/
public final static String SHARPNESS_PROPERTY = "sharpness";
/** De-noise adjustment in the range [0,1].
*/
public final static String DENOISE_PROPERTY = "denoise";
/** Temperature adjustment in the range [-1,1].
*/
public final static String TEMPERATURE_PROPERTY = "temperature";
/** Tint adjustment in the range [-1,1].
*/
public final static String TINT_PROPERTY = "tint";
/** A 4-vector with the parameters for quadratic white balance adjustment.
* The vector contains the values {Rmu, Rnu, Bmu, Bnu}.
*
* <pre>
* [ R
* G
* B
* [R' [ Rnu 0 0 Rmu 0 0 R^2
* G' = 0 1 0 0 0 0 * G^2
* B'] 0 0 Bnu 0 0 Bmu ] B^2 ]
* </pre>
*
* <p>
* Reference:<br>
* Edmund Lam, Combining gray world and retinex theory for automatic
* white balance in digital photography, Consumer Electronics, 2005.
* (ISCE 2005). Proceedings of the Ninth International Symposium on (2005),
* pp.134–139.
*
*/
public final static String WHITE_BALANCE_QM_PROPERTY = "whiteBalanceQM";
public final static String WHITE_BALANCE_QM_ENABLED_PROPERTY = "whiteBalanceQMEnabled";
public final static String WHITE_BALANCE_TT_ENABLED_PROPERTY = "whiteBalanceTTEnabled";
public float getWhitePoint();
public void setWhitePoint(float newValue);
public float getBlackPoint();
public void setBlackPoint(float newValue);
public float getMidPoint();
public void setMidPoint(float newValue);
public float getContrast();
public void setContrast(float newValue);
public float getDefinition();
public void setDefinition(float newValue);
public float getDenoise();
public void setDenoise(float newValue);
public float getBrightness();
public void setBrightness(float newValue);
public float getExposure();
public void setExposure(float newValue);
public float getHighlights();
public void setHighlights(float newValue);
public float getSaturation();
public void setSaturation(float newValue);
public float getShadows();
public void setShadows(float newValue);
public float getSharpness();
public void setSharpness(float newValue);
public float getTemperature();
public void setTemperature(float newValue);
public float getTint();
public void setTint(float newValue);
public void setWhiteBalanceTTEnabled(boolean newValue);
public boolean isWhiteBalanceTTEnabled();
public void setWhiteBalanceQMEnabled(boolean newValue);
public boolean isWhiteBalanceQMEnabled();
public void setWhiteBalanceQM(float[] newValue);
public float[] getWhiteBalanceQM();
public void addPropertyChangeListener(PropertyChangeListener listener);
public void removePropertyChangeListener(PropertyChangeListener listener);
/** Resets all values. */
public void reset();
public void setTo(ColorAdjustModel that);
/** Returns true, if the model does not perform any changes to the image. */
public boolean isIdentity();
}