Данные гистограммы передали двоичный файл. Поле типа данных сегмента OBX - «ED», а поле данных имеет вид ^ Application ^ Octer-stream ^ Base64 ^ …… данные гистограммы …… », в то время как« Application »указывает, что данные прикладной программы«Octer-stream» указывает, что данные относятся к типу потока байтов, «Base64» указывает режим кодирования растровых данных.
Изображение гистограммы будет сгенерировано в заданном формате:
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] Изображение гистограммы будет сгенерировано в заданном формате
[2] Сгенерированный график с использованием приведенного выше примера кода
[3] Нам нужен график гистограммы в этом формате графика