Wie kann ich nur serialisierbare DataPoints? Ich möchte DataPoints in einer Datei speichern.Datenpunkt Serialisierung
[Serializable]
class CIE
{
public List<DataPoint> CieDataPoint = new List<DataPoint>() ;
}
List<DataPoint> GetCieColorPoints(string filename, int count)
{
CIE cie = new CIE();
var data = new List<DataPoint>();
float cr = (float)Math.Sqrt(count);
using (Bitmap bmp = new Bitmap(filename))
{
int sx = (int)(bmp.Width/cr);
int sy = (int)(bmp.Height/cr);
float scx = 0.8f/bmp.Width;
float scy = 0.9f/bmp.Height;
for (int x = 0; x < bmp.Width; x += sx)
for (int y = 0; y < bmp.Height; y += sy)
{
Color c = bmp.GetPixel(x, y);
float b = c.GetBrightness();
if (b > 0.01f && b < 0.99f)
{
var dp = new DataPoint(x * scx, 0.9f - y * scy);
dp.Color = c;
dp.MarkerColor = dp.Color;
dp.MarkerStyle = MarkerStyle.Circle ;
data.Add(dp);
}
}
}
return data;
}
Cie.CieDataPoint = GetCieColorPoints("E:\\CIExy1931_T2.png", 125000);;
IFormatter formatter = new BinaryFormatter();
FileStream seryalization = new FileStream("CIEdata", FileMode.Create, FileAccess.Write);
formatter.Serialize(seryalization, Cie);
seryalization.Close();
Fehler Zusätzliche Informationen: Type 'System.Windows.Forms.DataVisualization.Charting.DataPoint' in Versammlung System.Windows.Forms.DataVisualization, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'ist nicht als serialisierbar gekennzeichnet.
zeigen Bitte geben Sie die Definition von 'DataPoint'. Darüber hinaus bietet [MSDN] (https://msdn.microsoft.com/de-de/library/system.serializableattribute (v = vs.110) .aspx) ein Beispiel, wie das Attribut "Serializable" verwendet werden kann. – Codor
@Codor Es ist ein Framework-Typ - 'System.Windows.Forms.DataVisualization.Charting.DataPoint'. –