Exemple #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Lab(ComponentValue.ToDouble(), RowColumn.Column - 128.0, RowColumn.Row - 128.0, Observer, Illuminant).ToRgba());
     }), new RowColumn(Lab.Range.A, Lab.Range.B));
 }
Exemple #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Luv(RowColumn.Row.Add(Luv.MinValue.L), RowColumn.Column.Add(Luv.MinValue.U), ComponentValue.ToDouble(), Observer, Illuminant).ToRgba());
     }), new RowColumn(Luv.Range.L, Luv.Range.U));
 }
Exemple #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Hsl(RowColumn.Column, RowColumn.Row, ComponentValue.ToDouble()).ToRgba());
     }), new RowColumn(Hsl.MaxValue.S, Hsl.MaxValue.H));
 }
Exemple #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Lch(RowColumn.Row, RowColumn.Column, ComponentValue.ToDouble(), Observer, Illuminant).ToRgba());
     }), new RowColumn(Lch.MaxValue.L, Lch.MaxValue.C));
 }
Exemple #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Rgba(RowColumn.Column.ToByte(), RowColumn.Row.ToByte(), ComponentValue.ToByte()));
     }), new RowColumn(255, 255));
 }
Exemple #6
0
        /// <summary>
        /// Updates the plane bitmap.
        /// </summary>
        public virtual void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
        {
            unsafe
            {
                Bitmap.Lock();

                int   CurrentPixel = -1;
                byte *Start        = (byte *)(void *)Bitmap.BackBuffer;

                var u = Unit.Value;
                u.Row    = u.Row / 256.0;
                u.Column = u.Column / 256.0;

                var CurrentRow = u.Row * 256.0;

                for (var Row = 0; Row < Bitmap.PixelHeight; Row++)
                {
                    double CurrentCol = 0;
                    for (var Col = 0; Col < Bitmap.PixelWidth; Col++)
                    {
                        var c = Action.Invoke(new RowColumn(CurrentRow, CurrentCol), ComponentValue);

                        CurrentPixel++;
                        *(Start + CurrentPixel * 3 + 0) = c.B;
                        *(Start + CurrentPixel * 3 + 1) = c.G;
                        *(Start + CurrentPixel * 3 + 2) = c.R;
                        CurrentCol += u.Column;
                    }
                    CurrentRow -= u.Row;
                }
                Bitmap.AddDirtyRect(new Int32Rect(0, 0, Bitmap.PixelWidth, Bitmap.PixelHeight));
                Bitmap.Unlock();
            }
        }
Exemple #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Bitmap"></param>
 /// <param name="ComponentValue"></param>
 /// <param name="Action"></param>
 /// <param name="Unit"></param>
 public override void UpdatePlane(WriteableBitmap Bitmap, int ComponentValue, Func <RowColumn, int, Rgba> Action = null, RowColumn?Unit = null)
 {
     base.UpdatePlane(Bitmap, ComponentValue, new Func <RowColumn, int, Rgba>((RowColumn, Value) =>
     {
         return(new Xyz(RowColumn.Column, RowColumn.Row, ComponentValue.ToDouble() / Xyz.Max[Xyz.Component.Z, Observer, Illuminant].Shift(2), Observer, Illuminant).ToRgba());
     }), new RowColumn(Xyz.Max[Xyz.Component.Y, Observer, Illuminant], Xyz.Max[Xyz.Component.X, Observer, Illuminant]));
 }