private void DrawHue() { //var col = new HSVColor(); var bmp = (WriteableBitmap)HueImage.Source; var pix = new Byte[bmp.PixelWidth * bmp.PixelHeight * 4]; var hueSteps = 360.0 / bmp.PixelHeight; //col.Hue = 0.0; var hue = 0d; for (var y = 0; y < bmp.PixelHeight; y++) { hue += hueSteps; //col.Hue += hueSteps; var col = OxyColor.FromHsv((double)y / bmp.PixelHeight, 1, 1); for (var x = 0; x < bmp.PixelWidth; x++) { var offset = x * 4 + y * bmp.PixelWidth * 4; pix[offset++] = col.B; pix[offset++] = col.G; pix[offset++] = col.R; pix[offset] = col.A; } } bmp.WritePixels(new Int32Rect(0, 0, bmp.PixelWidth, bmp.PixelHeight), pix, 4 * bmp.PixelWidth, 0); }
public void CompareGraph(List <List <DateTimeOffset> > messages, string interval, string OrderID, byte[] bg, string[] names, double repeat) { PlotModel plot = new PlotModel(); plot.Axes.Add(new DateTimeAxis { Position = AxisPosition.Bottom, Maximum = DateTimeAxis.ToDouble(DateTime.Now) }); plot.Axes.Add(new LinearAxis { Position = AxisPosition.Left }); int step = 0; foreach (List <DateTimeOffset> submessages in messages) { OxyColor color = OxyColor.FromHsv(25 * step + 25, 75, 100); LineSeries result = internal_ActivityGraph(submessages.ToArray(), interval, color, repeat); if (result == null) { continue; } else { result.Title = names[step] + " - " + result.Points.Count + " Datapoints"; plot.Series.Add(result); } step++; } var pngExporter = new PngExporter { Width = 1800, Height = 600, Background = OxyColor.FromArgb(bg[3], bg[0], bg[1], bg[2]) }; pngExporter.ExportToFile(plot, OrderID + ".png"); }
private void RedrawColorImages() { var hsv = SelectedColor.ToHsv(); //hsv[0] = 1; //var col = new HSVColor(SelectedColor.Hue, SelectedColor.Saturation, SelectedColor.Value, SelectedColor.A); var bmp = (WriteableBitmap)ColorImage.Source; var pix = new byte[bmp.PixelWidth * bmp.PixelHeight * 4]; for (var y = 0; y < bmp.PixelHeight; y++) { hsv[2] = 1.0 - y / (double)bmp.PixelHeight; for (var x = 0; x < bmp.PixelWidth; x++) { hsv[1] = x / (double)bmp.PixelWidth; var col = OxyColor.FromHsv(hsv); var offset = x * 4 + y * bmp.PixelWidth * 4; pix[offset++] = col.B; pix[offset++] = col.G; pix[offset++] = col.R; pix[offset] = col.A; } } bmp.WritePixels(new Int32Rect(0, 0, bmp.PixelWidth, bmp.PixelHeight), pix, 4 * bmp.PixelWidth, 0); RedrawColorSliders(); }
private Tuple <LineSeries, Queue <Tuple <DateTime, DataPoint> > > GetSerie(string senderID) { Tuple <LineSeries, Queue <Tuple <DateTime, DataPoint> > > value; if (!_series.TryGetValue(senderID, out value)) { var isServer = senderID.StartsWith(Server.ServerSenderID); var serie = new LineSeries(senderID) { MarkerType = isServer ? MarkerType.Circle: Symbols[_series.Count % Symbols.Length], MarkerStrokeThickness = 1.5, LineStyle = LineStyle.None, Color = OxyColors.Transparent, MarkerSize = isServer ? 1 : 4.0, MarkerStroke = _series.Count >= Colors.Length ? OxyColor.FromHsv(Math.Round(_random.NextDouble(), 1), 1.0, 0.5) : Colors[_series.Count] }; value = new Tuple <LineSeries, Queue <Tuple <DateTime, DataPoint> > >(serie, new Queue <Tuple <DateTime, DataPoint> >()); _series.Add(senderID, value); DataModel.Series.Add(serie); } return(value); }
public OxyColor GetColor(int value, int nColors) { if (value == -1) { return(OxyColor.FromHsv(0, 1, 1)); } var delta = 240.0 / (360.0 * (nColors)); var hue = (240.0 / 360.0) - (delta * (value)); return(OxyColor.FromHsv(hue, 1, 1)); }
public void pieChartSetting() { //People modelLineChart = new PlotModel { Title = "Car" }; dynamic seriesP1 = new PieSeries { StrokeThickness = 2.0, InsideLabelPosition = 0.8, AngleSpan = 360, StartAngle = 0 }; String[] colorNames = { "Orange", "Yellow", "YelloGreen", "Green", "Cyan", "Blue", "Purple", "Red" }; double[] Hue = { 1.0, 3.0, 5.0, 8.0, 12.0, 15.0, 18.0, 22.0 }; for (int i = 0; i < Hue.Length; i++) { seriesP1.Slices.Add(new PieSlice(colorNames[i], colorRatioCar[i]) { IsExploded = false, Fill = OxyColor.FromHsv(Hue[i] / 24, 0.7, 0.9) }); } seriesP1.Slices.Add(new PieSlice("White", colorRatioCar[8]) { IsExploded = false, Fill = OxyColors.Ivory }); seriesP1.Slices.Add(new PieSlice("Black", colorRatioCar[9]) { IsExploded = false, Fill = OxyColor.FromRgb(80, 80, 80) }); modelLineChart.Series.Add(seriesP1); //Car modelPieChartPeople = new PlotModel { Title = "People" }; dynamic seriesP2 = new PieSeries { StrokeThickness = 2.0, InsideLabelPosition = 0.8, AngleSpan = 360, StartAngle = 0 }; for (int i = 0; i < Hue.Length; i++) { seriesP2.Slices.Add(new PieSlice(colorNames[i], colorRatioPeople[i]) { IsExploded = false, Fill = OxyColor.FromHsv(Hue[i] / 24, 0.7, 0.9) }); } seriesP2.Slices.Add(new PieSlice("White", colorRatioPeople[8]) { IsExploded = false, Fill = OxyColors.Ivory }); seriesP2.Slices.Add(new PieSlice("Black", colorRatioPeople[9]) { IsExploded = false, Fill = OxyColor.FromRgb(80, 80, 80) }); modelPieChartPeople.Series.Add(seriesP2); }
private void HueImage_OnMouseMove(object sender, MouseEventArgs e) { if (e.LeftButton != MouseButtonState.Pressed) { Mouse.Capture(null); return; } HueImage.CaptureMouse(); var pos = Mouse.GetPosition(HueImage); var hsv = SelectedColor.ToHsv(); hsv[0] = Max(0, Min(1, pos.Y / HueImage.ActualHeight)); SelectedColor = OxyColor.FromHsv(hsv); UpdateSelectedColor(); RedrawColorImages(); }
public void Create_LargeImageToPng() { int w = 266; int h = 40; var data = new OxyColor[w, h]; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { data[x, y] = OxyColor.FromHsv((double)x / w, 1, 1); } } var img = OxyImage.Create(data, ImageFormat.Png); var bytes = img.GetData(); File.WriteAllBytes(@"Imaging\LargeImage.png", bytes); }
public void PngFromArgb2() { int w = 266; int h = 40; var data = new OxyColor[h, w]; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { data[i, j] = OxyColor.FromHsv((double)j / w, 1, 1); } } var img = OxyImage.PngFromArgb(data); var bytes = img.GetData(); File.WriteAllBytes("PngFromArgb2.png", bytes); }
public void AddSeries(List<float> data, string title, double hue) { var lineSeries = new LineSeries { StrokeThickness = 2, MarkerSize = 3, MarkerStroke = OxyColor.FromHsv(hue, 60, 44), CanTrackerInterpolatePoints = true, Title = title, Smooth = false }; int i = 1; data.ForEach(dataPoint => { lineSeries.Points.Add(new DataPoint(i, dataPoint)); i++; }); _plotModel.Series.Add(lineSeries); }
private void ColorImage_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton != MouseButtonState.Pressed) { Mouse.Capture(null); return; } Mouse.Capture(ColorImage); var hsv = SelectedColor.ToHsv(); var pos = Mouse.GetPosition(ColorImage); pos.X = Max(0, Min(ColorImage.ActualWidth, pos.X)); pos.Y = Max(0, Min(ColorImage.ActualHeight, pos.Y)); hsv[1] = pos.X / ColorImage.ActualWidth; hsv[2] = 1 - pos.Y / ColorImage.ActualHeight; //SelectedColor.Saturation = pos.X / ColorImage.ActualWidth; //SelectedColor.Brightness = 1 - pos.Y / ColorImage.ActualHeight; SelectedColor = OxyColor.FromHsv(hsv); UpdateSelectedColor(); RedrawColorSliders(); }
public void FromHsv() { Assert.AreEqual(OxyColors.Red, OxyColor.FromHsv(0, 1, 1)); }