1:序列化与反序列化
public static object DeserializeObject(byte[] pBytes)
{
object _newOjb = null;
if (pBytes == null)
return _newOjb;
System.IO.MemoryStream _memory = new System.IO.MemoryStream(pBytes);
_memory.Position = 0;
BinaryFormatter formatter = new BinaryFormatter();
_newOjb = formatter.Deserialize(_memory);
_memory.Close();
return _newOjb;
}
//序列化图片
public static byte[] SerializeObject(object pObj)
{
if (pObj == null)
return null;
System.IO.MemoryStream _memory = new System.IO.MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(_memory, pObj);
_memory.Position = 0;
byte[] read = new byte[_memory.Length];
_memory.Read(read, 0, read.Length);
_memory.Close();
return read;
}
2:抓屏
/// <summary>
/// 抓屏
/// </summary>
/// <param name="control">抓屏的区域</param>
/// <param name="filename">抓屏成功后存储的文件的名称</param>
public static Bitmap ToBmpAlarm(Control control)
{
try
{
Bitmap newbitmap = new Bitmap(control.Width, control.Height);
control.DrawToBitmap(newbitmap, new Rectangle(0, 0, control.Width, control.Height));
return newbitmap;
}
catch
{
return null;
}
}
3:存储
private void SaveBmp(Bitmap tobit,string savepath)
{
using (Bitmap tobit = new Bitmap(this.Width, this.Height))
{
if (!string.IsNullOrWhiteSpace(savepath))
{
byte[] bitbyte =Helpers.CPlusHelper.SerializeObject(tobit);
if (bitbyte != null)
{
File.WriteAllBytes(savepath, bitbyte);
}
}
}
}
4:反序列化显示
例如:
(System.Drawing.Image)Helpers.CPlusHelper. DeserializeObject(File.ReadAllBytes(ModuleImags[key].Images));