Commit Latest

This commit is contained in:
2025-06-21 18:53:21 -04:00
parent 8647d86ea2
commit 981a873dee
5 changed files with 586 additions and 229 deletions

View File

@@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -11,7 +10,6 @@ using CommunityToolkit.Mvvm.Input;
using DynamicData;
using Eremex.AvaloniaUI.Charts;
using MarketData;
using MarketData.CNNProcessing;
using MarketData.DataAccess;
using MarketData.Generator;
using MarketData.MarketDataModel;
@@ -22,61 +20,9 @@ using PortfolioManager.DataSeriesViewModels;
using PortfolioManager.Extensions;
using PortfolioManager.Models;
using PortfolioManager.UIUtils;
using ScottPlot;
using SkiaSharp;
namespace PortfolioManager.ViewModels
{
public static class TextMarkerImageGenerator
{
public static Image GenerateImage(String text)
{
ImageHelper imageHelper = new ImageHelper();
int fontSize = 12;
int width = 130;
int height = 24;
imageHelper.CreateImage(width, height); //, new PointMapping(width,height,width,0,height,0));
imageHelper.Fill(SKColors.White);
SKTextAlign align = SKTextAlign.Center;
// SKFont font = new SKFont(SKTypeface.FromFamilyName("Arial",SKFontStyle.Normal), fontSize);
SKFont font = new SKFont(SKTypeface.FromFamilyName("Arial",500,5,SKFontStyleSlant.Upright), fontSize);
// SKFont font = new SKFont(SKTypeface.Default, fontSize);
imageHelper.DrawLine(SKColors.Black,1, new SKPoint(0,0), new SKPoint(width-1,0)); // bottom left to right
imageHelper.DrawLine(SKColors.Black,1, new SKPoint(width-1,0), new SKPoint(width-1,height-1)); // up lefthand side
imageHelper.DrawLine(SKColors.Black,1, new SKPoint(0,height-1), new SKPoint(width-1,height-1)); // top left to right
imageHelper.DrawLine(SKColors.Black,1, new SKPoint(0,height-1), new SKPoint(0,0)); // left hand side top to bottom
imageHelper.DrawText(text, new SKPoint(width / 2, height-8), SKColors.Black, align, font);
using MemoryStream memoryStream = new MemoryStream();
imageHelper.ToStream().CopyTo(memoryStream);
return new ScottPlot.Image(memoryStream.ToArray());
}
// public static IImage GenerateImage(String text)
// {
// ImageHelper imageHelper = new ImageHelper();
// int fontSize = 36;
// int width = 130;
// imageHelper.CreateImage(width, fontSize);
// imageHelper.Fill(SKColors.White);
// SKTextAlign align = SKTextAlign.Center;
// SKFont font = new SKFont(SKTypeface.FromFamilyName("Helvetica"), fontSize);
// imageHelper.DrawText(text, new SKPoint(width / 2, fontSize - 2), SKColors.Black, align, font);
// Avalonia.Media.Imaging.Bitmap avBitmap = new Avalonia.Media.Imaging.Bitmap(imageHelper.ToStream());
// return avBitmap;
// // avBitmap.Save("c:\\3\\mybitmap.jpg"); }
// }
public static IImage GenerateImage(int width, int height, SKColor color)
{
ImageHelper imageHelper = new ImageHelper();
imageHelper.CreateImage(width, height);
imageHelper.Fill(color);
Avalonia.Media.Imaging.Bitmap avBitmap = new Avalonia.Media.Imaging.Bitmap(imageHelper.ToStream());
return avBitmap;
// avBitmap.Save("c:\\3\\mybitmap.jpg"); }
}
}
public partial class BollingerBandViewModel : WorkspaceViewModel
{