示例#1
0
 public Rgb(Vector3 vector, RgbWorkingSpaceBase workingSpace)
 {
     vector            = Vector3.Clamp(vector, Min, Max);
     this.R            = vector.X;
     this.G            = vector.Y;
     this.B            = vector.Z;
     this.WorkingSpace = workingSpace;
 }
示例#2
0
 public LinearRgb(Vector3 vector, RgbWorkingSpaceBase workingSpace)
 {
     // Clamp to 0-1 range.
     vector            = Vector3.Clamp(vector, Min, Max);
     this.R            = vector.X;
     this.G            = vector.Y;
     this.B            = vector.Z;
     this.WorkingSpace = workingSpace;
 }
示例#3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ColorSpaceConverter"/> class.
        /// </summary>
        /// <param name="options">The configuration options.</param>
        public ColorSpaceConverter(ColorSpaceConverterOptions options)
        {
            Guard.NotNull(options, nameof(options));
            this.whitePoint                 = options.WhitePoint;
            this.targetLuvWhitePoint        = options.TargetLuvWhitePoint;
            this.targetLabWhitePoint        = options.TargetLabWhitePoint;
            this.targetHunterLabWhitePoint  = options.TargetHunterLabWhitePoint;
            this.targetRgbWorkingSpace      = options.TargetRgbWorkingSpace;
            this.chromaticAdaptation        = options.ChromaticAdaptation;
            this.performChromaticAdaptation = this.chromaticAdaptation != null;
            this.lmsAdaptationMatrix        = options.LmsAdaptationMatrix;

            this.cieXyzAndLmsConverter      = new CieXyzAndLmsConverter(this.lmsAdaptationMatrix);
            this.cieXyzToCieLabConverter    = new CieXyzToCieLabConverter(this.targetLabWhitePoint);
            this.cieXyzToCieLuvConverter    = new CieXyzToCieLuvConverter(this.targetLuvWhitePoint);
            this.cieXyzToHunterLabConverter = new CieXyzToHunterLabConverter(this.targetHunterLabWhitePoint);
            this.cieXyzToLinearRgbConverter = new CieXyzToLinearRgbConverter(this.targetRgbWorkingSpace);
        }
示例#4
0
 public LinearRgb(float r, float g, float b, RgbWorkingSpaceBase workingSpace)
     : this(new Vector3(r, g, b), workingSpace)
 {
 }