Как сгенерировать изображение гистограммы из приложения Приложение ^ Octer-stream ^ Base64 ^ .... Данные гистограммы - PullRequest
0 голосов
/ 14 октября 2019

Данные гистограммы передали двоичный файл. Поле типа данных сегмента OBX - «ED», а поле данных имеет вид ^ Application ^ Octer-stream ^ Base64 ^ …… данные гистограммы …… », в то время как« Application »указывает, что данные прикладной программы«Octer-stream» указывает, что данные относятся к типу потока байтов, «Base64» указывает режим кодирования растровых данных.

Изображение гистограммы будет сгенерировано в заданном формате:

1

WBC_Histogram_Binary99MRC

^ Применение ^ Octer-поток ^ Base64 ^ AAAHFi5OWlpaWlpYT0Q5MSsoJSEcFxMPDQwLCgkIBgQDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA =

2

1013 * RBC_Histogram_Binary99MRC

^ Применение ^ Octer-stream ^ Base64 ^ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQICAgICAgIDBAUGCAoNEhcdIys1QUxXYGtyd3p9gH99d25lX1lQRj43Mi0oIx8bGBYTEQ8ODgwLCQgIBwcHBwYGBgUFBQUFBAQEBAQEBAMDAwMDAwMDAwMDAwMDAwICAgICAgI =

3

PLT_Histogram_Binary_99MRC

^ Применение ^ Octer-поток ^ Base64 ^ AAUKDhMaICctNT1FTVVdZW1wdHd6fH1 / gH9 / fn17enh2c3Fua2hkYV1aVlNPTElFQj88ODUzMS8tKyooJiUkIyIhISAfHh4dHBsbGhkYGBcWFRUUExMSEhEREBAPDw8PDw8PDw8PDg4NDQwMCwsLCwsLCwoKCgsLCwsLCwsLCws =

* * 1023 Я использую логику для формирования изображения из base64. Может ли кто-нибудь оказать мне некоторую помощь в создании изображения гистограммы из приложения ^ Octer-stream ^ Base64 ^ ... Данные гистограммы ....... Использование C # Winforms.

Код для создания графика с использованием Application ^Octer-stream ^ Base64 ^ .... Данные гистограммы

public class OBXGraphWBC : PictureBox
{
    private List<Point> pts = new List<Point>();
    private int count, m;

    public void Draw(string b64)
    {
        var bytes = Convert.FromBase64String(b64);
        pts.Clear();
        count = 0; m = 0;
        foreach (var b in bytes)
        {
            if (b > m)
                m = b;
            pts.Add(new Point(count, b));
            count += 1;
        }
        this.Invalidate();
    }


    protected override void OnPaint(PaintEventArgs pe)
    {
        base.OnPaint(pe);
        if (pts.Count == 0)
            return;
        var dx = (this.Width - 150) / (float)count;
        var dy = (150 - this.Height) / (float)m;
        {
            var withBlock = pe.Graphics;
            withBlock.ScaleTransform(dx, dy);
            withBlock.TranslateTransform(10 / (float)dx, (-50 - this.Height));
            withBlock.DrawCurve(Pens.Black, pts.ToArray());
        }

    }
}

[1] Изображение гистограммы будет сгенерировано в заданном формате

1


[2] Сгенерированный график с использованием приведенного выше примера кода

2


[3] Нам нужен график гистограммы в этом формате графика

3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...