public Gdk.Pixbuf CreateIcon2D(Table2D table)
{
if (table.Ymin == table.Ymax)
{
return(GetNoDataPixBuf);
}
plotSurface.Clear();
// needs to be set each time after Clear()
plotSurface.Padding = padding;
plotSurface.SmoothingMode = SmoothingMode;
float[] valuesY = table.GetValuesYasFloats();
// y-values, x-values (!)
LinePlot lp = new LinePlot(valuesY, table.ValuesX);
lp.Pen = pen;
plotSurface.Add(lp);
plotSurface.XAxis1.Hidden = true;
plotSurface.YAxis1.Hidden = true;
using (System.Drawing.Graphics g = Graphics.FromImage(bitmap_cache)) {
plotSurface.Draw(g, bounds);
}
if (memoryStream == null)
{
memoryStream = new System.IO.MemoryStream(MemoryStreamCapacity);
}
memoryStream.Position = 0;
bitmap_cache.Save(memoryStream, imageFormat);
memoryStream.Position = 0;
// TODO create Pixbuf directly from bitmap if possible, avoiding MemoryStream
return(new Gdk.Pixbuf(memoryStream));
}